summaryrefslogtreecommitdiffstats
path: root/meta/recipes-gnome/gtk+/gtk+-2.12.7/range-no-redraw.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-gnome/gtk+/gtk+-2.12.7/range-no-redraw.patch')
-rw-r--r--meta/recipes-gnome/gtk+/gtk+-2.12.7/range-no-redraw.patch130
1 files changed, 0 insertions, 130 deletions
diff --git a/meta/recipes-gnome/gtk+/gtk+-2.12.7/range-no-redraw.patch b/meta/recipes-gnome/gtk+/gtk+-2.12.7/range-no-redraw.patch
deleted file mode 100644
index d577dc69c8..0000000000
--- a/meta/recipes-gnome/gtk+/gtk+-2.12.7/range-no-redraw.patch
+++ /dev/null
@@ -1,130 +0,0 @@
15f084ea0849d5967a3c22821542ecaaa8accb398
2
3Upstream-Status: Inappropriate [enable feature]
4
5diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
6index bd95351..64e0e59 100644
7--- gtk/gtkrange.c
8+++ gtk/gtkrange.c
9@@ -109,6 +109,8 @@ struct _GtkRangeLayout
10 GtkSensitivityType upper_sensitivity;
11
12 gdouble fill_level;
13+
14+ guint motion_idle_id;
15 };
16
17
18@@ -205,6 +207,8 @@ static gboolean gtk_range_real_change_value (GtkRange *range,
19 static void gtk_range_update_value (GtkRange *range);
20 static gboolean gtk_range_key_press (GtkWidget *range,
21 GdkEventKey *event);
22+static void gtk_range_add_motion_idle (GtkRange *range);
23+static void gtk_range_remove_motion_idle (GtkRange *range);
24
25
26 static guint signals[LAST_SIGNAL];
27@@ -1167,6 +1171,7 @@ gtk_range_destroy (GtkObject *object)
28
29 gtk_range_remove_step_timer (range);
30 gtk_range_remove_update_timer (range);
31+ gtk_range_remove_motion_idle (range);
32
33 if (range->adjustment)
34 {
35@@ -1276,6 +1281,7 @@ gtk_range_unrealize (GtkWidget *widget)
36
37 gtk_range_remove_step_timer (range);
38 gtk_range_remove_update_timer (range);
39+ gtk_range_remove_motion_idle (range);
40
41 gdk_window_set_user_data (range->event_window, NULL);
42 gdk_window_destroy (range->event_window);
43@@ -2165,7 +2171,7 @@ gtk_range_motion_notify (GtkWidget *widget,
44 gtk_widget_queue_draw (widget);
45
46 if (range->layout->grab_location == MOUSE_SLIDER)
47- update_slider_position (range, x, y);
48+ gtk_range_add_motion_idle (range);
49
50 /* We handled the event if the mouse was in the range_rect */
51 return range->layout->mouse_location != MOUSE_OUTSIDE;
52@@ -3335,9 +3341,10 @@ initial_timeout (gpointer data)
53 g_object_get (settings, "gtk-timeout-repeat", &timeout, NULL);
54
55 range = GTK_RANGE (data);
56- range->timer->timeout_id = gdk_threads_add_timeout (timeout * SCROLL_DELAY_FACTOR,
57- second_timeout,
58- range);
59+ range->timer->timeout_id =
60+ gdk_threads_add_timeout (timeout * SCROLL_DELAY_FACTOR,
61+ second_timeout,
62+ range);
63 /* remove self */
64 return FALSE;
65 }
66@@ -3357,9 +3364,8 @@ gtk_range_add_step_timer (GtkRange *range,
67
68 range->timer = g_new (GtkRangeStepTimer, 1);
69
70- range->timer->timeout_id = gdk_threads_add_timeout (timeout,
71- initial_timeout,
72- range);
73+ range->timer->timeout_id =
74+ gdk_threads_add_timeout (timeout, initial_timeout, range);
75 range->timer->step = step;
76
77 gtk_range_scroll (range, range->timer->step);
78@@ -3397,9 +3403,8 @@ gtk_range_reset_update_timer (GtkRange *range)
79 {
80 gtk_range_remove_update_timer (range);
81
82- range->update_timeout_id = gdk_threads_add_timeout (UPDATE_DELAY,
83- update_timeout,
84- range);
85+ range->update_timeout_id =
86+ gdk_threads_add_timeout (UPDATE_DELAY, update_timeout, range);
87 }
88
89 static void
90@@ -3412,5 +3417,40 @@ gtk_range_remove_update_timer (GtkRange *range)
91 }
92 }
93
94+static gboolean
95+motion_idle (gpointer data)
96+{
97+ GtkRange *range = data;
98+ GtkRangeLayout *layout = range->layout;
99+
100+ update_slider_position (range, layout->mouse_x, layout->mouse_y);
101+
102+ layout->motion_idle_id = 0;
103+
104+ return FALSE;
105+}
106+
107+static void
108+gtk_range_add_motion_idle (GtkRange *range)
109+{
110+ if (!range->layout->motion_idle_id)
111+ {
112+ range->layout->motion_idle_id =
113+ gdk_threads_add_idle_full (GDK_PRIORITY_REDRAW,
114+ motion_idle, range,
115+ NULL);
116+ }
117+}
118+
119+static void
120+gtk_range_remove_motion_idle (GtkRange *range)
121+{
122+ if (range->layout->motion_idle_id != 0)
123+ {
124+ g_source_remove (range->layout->motion_idle_id);
125+ range->layout->motion_idle_id = 0;
126+ }
127+}
128+
129 #define __GTK_RANGE_C__
130 #include "gtkaliasdef.c"