summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/charts.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/charts.c b/src/charts.c
index 16f8dc7..1040d45 100644
--- a/src/charts.c
+++ b/src/charts.c
@@ -903,14 +903,23 @@ static void draw_overlay_row(vwm_charts_t *charts, vwm_chart_t *chart, vmon_proc
/* skip if obviously unnecessary (this can be further improved, but this makes a big difference as-is) */
if (!deferred_pass && !chart->redraw_needed &&
- !columns_changed(charts, chart, chart->proc_cpu_columns, row, proc))
+ !columns_changed(charts, chart, chart->proc_cpu_columns, row, proc) &&
+ (proc->is_thread || !columns_changed(charts, chart, chart->proc_mem_columns, row + 1, proc)))
return;
- if (!proc->is_new) /* XXX for now always clear the row, this should be capable of being optimized in the future (if the datums driving the text haven't changed...) */
+ if (!proc->is_new) { /* XXX for now always clear the row, this should be capable of being optimized in the future (if the datums driving the text haven't changed...) */
vcr_clear_row(chart->vcr, VCR_LAYER_TEXT, row, -1, -1);
+ if (!proc->is_thread)
+ vcr_clear_row(chart->vcr, VCR_LAYER_TEXT, row + 1, -1, -1);
+ }
draw_row_columns(charts, chart, chart->proc_cpu_row_columns, 0 /* heading */, depth, row, proc);
vcr_shadow_row(chart->vcr, VCR_LAYER_TEXT, row);
+
+ if (!proc->is_thread) {
+ draw_row_columns(charts, chart, chart->proc_mem_row_columns, 0 /* heading */, depth, row + 1, proc);
+ vcr_shadow_row(chart->vcr, VCR_LAYER_TEXT, row + 1);
+ }
}
@@ -1018,6 +1027,11 @@ static void draw_chart_rest(vwm_charts_t *charts, vwm_chart_t *chart, vmon_proc_
/* extract the row from the various layers */
snowflake_row(charts, chart, (*row));
chart->snowflakes_cnt++;
+
+ /* stamp the final RSS (and whatever else we include) into chart.text_picture */
+ draw_row_columns(charts, chart, chart->snowflake_mem_row_columns, 0 /* heading */, 0 /* depth */, chart->hierarchy_end, proc);
+ vcr_shadow_row(chart->vcr, VCR_LAYER_TEXT, chart->hierarchy_end);
+
chart->hierarchy_end--;
(*row)--;
}
© All Rights Reserved