mate-system-monitor/0001-fix-resource-Fix-resource-page-too-large-when-system.patch

143 lines
4.6 KiB
Diff
Raw Normal View History

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