mate-system-monitor/0001-fix-resource-Fix-resource-page-too-large-when-system.patch
2022-08-04 10:37:58 +08:00

143 lines
4.6 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 79a028768f2e6ac28bf425e6597ff8aa61741456 Mon Sep 17 00:00:00 2001
From: songchuanfei <songchuanfei@kylinos.com.cn>
Date: Wed, 13 Jul 2022 05:56:39 -0400
Subject: [PATCH] fix[resource]: Fix resource page too large when system has
too many cpus
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 修复系统CPU数很多时资源页面太长无法看到全部的问题
Fixes #23294
Signed-off-by: songchuanfei <songchuanfei@kylinos.com.cn>
---
src/gsm_color_button.c | 8 +++-----
src/interface.cpp | 7 ++++++-
src/load-graph.cpp | 11 +----------
3 files changed, 10 insertions(+), 16 deletions(-)
diff --git a/src/gsm_color_button.c b/src/gsm_color_button.c
index 3148c34..35d2710 100644
--- a/src/gsm_color_button.c
+++ b/src/gsm_color_button.c
@@ -227,7 +227,7 @@ fill_image_buffer_from_file (cairo_t *cr, const char *filePath)
static void
-render (GtkWidget * widget)
+render (GtkWidget * widget, cairo_t *cr)
{
GSMColorButtonPrivate *priv;
GSMColorButton *color_button = GSM_COLOR_BUTTON (widget);
@@ -236,7 +236,6 @@ render (GtkWidget * widget)
GdkRGBA *color;
GdkRGBA tmp_color = priv->color;
color = &tmp_color;
- cairo_t *cr = gdk_cairo_create (gtk_widget_get_window (widget));
cairo_path_t *path = NULL;
gint width, height;
gdouble radius, arc_start, arc_end;
@@ -405,13 +404,12 @@ render (GtkWidget * widget)
break;
}
- cairo_destroy (cr);
}
/* Handle exposure events for the color picker's drawing area */
static gboolean draw (GtkWidget * widget, cairo_t * cr, gpointer data)
{
- render (GTK_WIDGET (data));
+ render (GTK_WIDGET (data), cr);
return FALSE;
}
@@ -420,7 +418,7 @@ static void
gsm_color_button_realize (GtkWidget * widget)
{
GTK_WIDGET_CLASS (gsm_color_button_parent_class)->realize (widget);
- render (widget);
+ gtk_widget_queue_draw(widget);
}
static void gsm_color_button_get_preferred_width (GtkWidget * widget, gint * minimum_width, gint * natural_width)
diff --git a/src/interface.cpp b/src/interface.cpp
index 2a5cbbf..e38915a 100644
--- a/src/interface.cpp
+++ b/src/interface.cpp
@@ -261,6 +261,7 @@ make_title_label (const char *text)
static GtkWidget *
create_sys_view (ProcData *procdata)
{
+ GtkWidget *scrolled;
GtkWidget *vbox, *hbox;
GtkWidget *cpu_box, *mem_box, *net_box;
GtkWidget *cpu_graph_box, *mem_graph_box, *net_graph_box;
@@ -277,6 +278,8 @@ create_sys_view (ProcData *procdata)
gchar *label_text;
gchar *title_template;
+ scrolled = gtk_scrolled_window_new(NULL, NULL);
+
// Translators: color picker title, %s is CPU, Memory, Swap, Receiving, Sending
title_template = g_strdup(_("Pick a Color for '%s'"));
@@ -558,7 +561,9 @@ create_sys_view (ProcData *procdata)
procdata->net_graph = net_graph;
g_free(title_template);
- return vbox_top;
+ gtk_container_add(GTK_CONTAINER(scrolled), vbox);
+
+ return scrolled;
}
static void
diff --git a/src/load-graph.cpp b/src/load-graph.cpp
index b24f977..2e294b9 100644
--- a/src/load-graph.cpp
+++ b/src/load-graph.cpp
@@ -220,7 +220,7 @@ load_graph_configure (GtkWidget *widget,
return TRUE;
}
-static gboolean load_graph_draw (GtkWidget *widget, cairo_t *context, gpointer data_ptr)
+static gboolean load_graph_draw (GtkWidget *widget, cairo_t *cr, gpointer data_ptr)
{
LoadGraph * const graph = static_cast<LoadGraph*>(data_ptr);
GdkWindow *window;
@@ -239,10 +239,6 @@ static gboolean load_graph_draw (GtkWidget *widget, cairo_t *context, gpointer d
x_offset += graph->rmargin - ((sample_width / graph->frames_per_unit) * graph->render_counter);
/* draw the graph */
- cairo_t* cr;
-
- cr = gdk_cairo_create (window);
-
if (graph->background == NULL) {
draw_background(graph);
}
@@ -252,9 +248,6 @@ static gboolean load_graph_draw (GtkWidget *widget, cairo_t *context, gpointer d
cairo_set_line_width (cr, 1);
cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
- cairo_rectangle (cr, graph->rmargin + graph->indent + FRAME_WIDTH + 1, FRAME_WIDTH - 1,
- graph->draw_width - graph->rmargin - graph->indent - 1, graph->real_draw_height + FRAME_WIDTH - 1);
- cairo_clip(cr);
for (j = 0; j < graph->n; ++j) {
cairo_move_to (cr, x_offset, (1.0f - graph->data[0][j]) * graph->real_draw_height);
@@ -275,8 +268,6 @@ static gboolean load_graph_draw (GtkWidget *widget, cairo_t *context, gpointer d
}
- cairo_destroy (cr);
-
return TRUE;
}
--
2.33.0