aboutsummaryrefslogtreecommitdiffstats
path: root/main/gnome-system-monitor/003-replace-old-drawing.patch
blob: eb7b7615d7eab7993b1808868e6ecbf5274e4b3d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
From 90d0162efa3d5196a96b07cf8eff8351c322f7f4 Mon Sep 17 00:00:00 2001
From: Chris Kühl <chrisk@openismus.com>
Date: Wed, 26 Jan 2011 10:51:50 +0000
Subject: Replace old GDK drawing API

Patch from Sergey Nizovtsev.
See https://bugzilla.gnome.org/show_bug.cgi?id=627568
---
diff --git a/src/load-graph.cpp b/src/load-graph.cpp
index 79700d4..3cf8683 100644
--- a/src/load-graph.cpp
+++ b/src/load-graph.cpp
@@ -87,7 +87,7 @@ void draw_background(LoadGraph *g) {
 					allocation.height,
 					-1);
 	cr = gdk_cairo_create (g->background);
-	
+
 	// set the background colour
 	GtkStyle *style = gtk_widget_get_style (ProcData::get_instance()->notebook);
 	gdk_cairo_set_source_color (cr, &style->bg[GTK_STATE_NORMAL]);
@@ -95,13 +95,13 @@ void draw_background(LoadGraph *g) {
 
 	/* draw frame */
 	cairo_translate (cr, FRAME_WIDTH, FRAME_WIDTH);
-	
+
 	/* Draw background rectangle */
 	cairo_set_source_rgb (cr, 1.0, 1.0, 1.0);
 	cairo_rectangle (cr, g->rmargin + g->indent, 0,
 			 g->draw_width - g->rmargin - g->indent, g->real_draw_height);
 	cairo_fill(cr);
-	
+
 	cairo_set_line_width (cr, 1.0);
 	cairo_set_dash (cr, dash, 2, 0);
 	cairo_set_font_size (cr, g->fontsize);
@@ -191,10 +191,6 @@ load_graph_configure (GtkWidget *widget,
 
 	g->clear_background();
 
-	if (g->gc == NULL) {
-		g->gc = gdk_gc_new (GDK_DRAWABLE (gtk_widget_get_window (widget)));
-	}
-
 	load_graph_draw (g);
 
 	return TRUE;
@@ -212,19 +208,14 @@ load_graph_expose (GtkWidget *widget,
 	guint i, j;
 	gdouble sample_width, x_offset;
 
+	window = gtk_widget_get_window (g->disp);
+	gtk_widget_get_allocation (g->disp, &allocation);
+
 	if (g->background == NULL) {
 		draw_background(g);
+		gdk_window_set_back_pixmap (window, g->background, FALSE);
 	}
 
-	window = gtk_widget_get_window (g->disp);
-	gtk_widget_get_allocation (g->disp, &allocation);
-	gdk_draw_drawable (window,
-			   g->gc,
-			   g->background,
-			   0, 0, 0, 0, 
-			   allocation.width,
-			   allocation.height);
-
 	/* Number of pixels wide for one graph point */
 	sample_width = (float)(g->draw_width - g->rmargin - g->indent) / (float)LoadGraph::NUM_POINTS;
 	/* General offset */
@@ -252,7 +243,7 @@ load_graph_expose (GtkWidget *widget,
 		for (i = 1; i < LoadGraph::NUM_POINTS; ++i) {
 			if (g->data[i][j] == -1.0f)
 				continue;
-			cairo_curve_to (cr, 
+			cairo_curve_to (cr,
 				       x_offset - ((i - 0.5f) * g->graph_delx),
 				       (1.0f - g->data[i-1][j]) * g->real_draw_height + 3.5f,
 				       x_offset - ((i - 0.5f) * g->graph_delx),
@@ -619,7 +610,6 @@ LoadGraph::LoadGraph(guint type)
     graph_buffer_offset(0),
     main_widget(NULL),
     disp(NULL),
-    gc(NULL),
     background(NULL),
     timer_index(0),
     draw(FALSE),
@@ -676,9 +666,9 @@ LoadGraph::LoadGraph(guint type)
 	case LOAD_GRAPH_MEM:
 		g->colors[0] = ProcData::get_instance()->config.mem_color;
 		g->colors[1] = ProcData::get_instance()->config.swap_color;
-		g->mem_color_picker = gsm_color_button_new (&g->colors[0], 
+		g->mem_color_picker = gsm_color_button_new (&g->colors[0],
 							    GSMCP_TYPE_PIE);
-		g->swap_color_picker = gsm_color_button_new (&g->colors[1], 
+		g->swap_color_picker = gsm_color_button_new (&g->colors[1],
 							     GSMCP_TYPE_PIE);
 		break;
 	case LOAD_GRAPH_NET:
diff --git a/src/load-graph.h b/src/load-graph.h
index 6111c78..2dc2b10 100644
--- a/src/load-graph.h
+++ b/src/load-graph.h
@@ -66,7 +66,6 @@ struct LoadGraph {
 	GtkWidget *main_widget;
 	GtkWidget *disp;
 
-	GdkGC *gc;
 	GdkDrawable *background;
 
 	guint timer_index;
--
cgit v0.9