143 lines
4.6 KiB
Diff
143 lines
4.6 KiB
Diff
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
|
||
|