Merge lp:~cimi/overlay-scrollbar/fix-debug-mode into lp:overlay-scrollbar

Proposed by Andrea Cimitan
Status: Merged
Approved by: Ted Gould
Approved revision: 261
Merged at revision: 260
Proposed branch: lp:~cimi/overlay-scrollbar/fix-debug-mode
Merge into: lp:overlay-scrollbar
Diff against target: 262 lines (+69/-29)
3 files modified
os/os-animation.c (+1/-1)
os/os-scrollbar.c (+65/-25)
os/os-thumb.c (+3/-3)
To merge this branch: bzr merge lp:~cimi/overlay-scrollbar/fix-debug-mode
Reviewer Review Type Date Requested Status
Ted Gould (community) Approve
Review via email: mp+65204@code.launchpad.net

Description of the change

Fix enourmous allocations in gtk+3 with debug mode, fix compiling as well, fix gtk+2 compiling too.

To post a comment you must log in.
261. By Andrea Cimitan

Fix get_preferred_width and height()

Revision history for this message
Ted Gould (ted) wrote :

  review +1
  status approve

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'os/os-animation.c'
2--- os/os-animation.c 2011-06-10 10:32:53 +0000
3+++ os/os-animation.c 2011-06-20 16:14:31 +0000
4@@ -143,7 +143,7 @@
5 {
6 OsAnimationPrivate *priv;
7
8- g_return_if_fail (animation != NULL);
9+ g_return_val_if_fail (animation != NULL, FALSE);
10
11 priv = animation->priv;
12
13
14=== modified file 'os/os-scrollbar.c'
15--- os/os-scrollbar.c 2011-06-17 02:49:13 +0000
16+++ os/os-scrollbar.c 2011-06-20 16:14:31 +0000
17@@ -126,7 +126,9 @@
18 static void os_scrollbar_realize (GtkWidget *widget);
19 static void os_scrollbar_show (GtkWidget *widget);
20 static void os_scrollbar_size_allocate (GtkWidget *widget, GdkRectangle *allocation);
21+#ifndef USE_GTK3
22 static void os_scrollbar_size_request (GtkWidget *widget, GtkRequisition *requisition);
23+#endif
24 static void os_scrollbar_unmap (GtkWidget *widget);
25 static void os_scrollbar_unrealize (GtkWidget *widget);
26 static void os_scrollbar_dispose (GObject *object);
27@@ -147,6 +149,7 @@
28 {
29 gint y, trough_length, height;
30
31+ y = 0;
32 trough_length = priv->trough.height;
33
34 if (gtk_adjustment_get_upper (priv->adjustment) - gtk_adjustment_get_lower (priv->adjustment) != 0)
35@@ -175,6 +178,7 @@
36 {
37 gint x, trough_length, width;
38
39+ x = 0;
40 trough_length = priv->trough.width;
41
42 if (gtk_adjustment_get_upper (priv->adjustment) - gtk_adjustment_get_lower (priv->adjustment) != 0)
43@@ -214,6 +218,7 @@
44 {
45 gint y, trough_length, height;
46
47+ y = 0;
48 trough_length = priv->trough.height;
49 height = priv->slider.height;
50
51@@ -234,6 +239,7 @@
52 {
53 gint x, trough_length, width;
54
55+ x = 0;
56 trough_length = priv->trough.width;
57 width = priv->slider.width;
58
59@@ -258,12 +264,10 @@
60 Window root)
61 {
62 Atom type;
63- cairo_rectangle_int_t test;
64 gint result, fmt;
65 gulong nitems, nleft;
66 guchar *property_data;
67 gulong *long_data;
68- guint i;
69
70 result = XGetWindowProperty (display, root,
71 unity_net_workarea_region_atom,
72@@ -282,8 +286,8 @@
73
74 if (fmt == 32 && type == XA_CARDINAL && nitems % 4 == 0)
75 {
76- int count;
77- unsigned int i;
78+ guint count;
79+ guint i;
80
81 count = nitems / 4;
82
83@@ -396,18 +400,30 @@
84 gint x,
85 gint y)
86 {
87+#ifndef USE_GTK3
88+ GdkRectangle gdk_rect;
89+#endif
90+ GdkScreen *screen;
91+ OsScrollbarPrivate *priv;
92 cairo_rectangle_int_t rect;
93- OsScrollbarPrivate *priv;
94 gint screen_width, n_monitor;
95- GdkScreen *screen;
96-
97+
98 priv = scrollbar->priv;
99
100 /* the x - 1 coordinate shift is done
101 * to calculate monitor boundaries. */
102 screen = gtk_widget_get_screen (GTK_WIDGET (scrollbar));
103 n_monitor = gdk_screen_get_monitor_at_point (screen, x - 1, y);
104- gdk_screen_get_monitor_geometry (screen, n_monitor, (GdkRectangle*) &rect);
105+#ifdef USE_GTK3
106+ gdk_screen_get_monitor_geometry (screen, n_monitor, &rect);
107+#else
108+ gdk_screen_get_monitor_geometry (screen, n_monitor, &gdk_rect);
109+
110+ rect.x = gdk_rect.x;
111+ rect.y = gdk_rect.y;
112+ rect.width = gdk_rect.width;
113+ rect.height = gdk_rect.height;
114+#endif
115
116 if (cairo_region_is_empty (os_workarea))
117 screen_width = rect.x + rect.width;
118@@ -459,18 +475,30 @@
119 gint x,
120 gint y)
121 {
122+#ifndef USE_GTK3
123+ GdkRectangle gdk_rect;
124+#endif
125+ GdkScreen *screen;
126+ OsScrollbarPrivate *priv;
127 cairo_rectangle_int_t rect;
128- OsScrollbarPrivate *priv;
129 gint screen_height, n_monitor;
130- GdkScreen *screen;
131-
132+
133 priv = scrollbar->priv;
134
135 /* the y - 1 coordinate shift is done
136 * to calculate monitor boundaries. */
137 screen = gtk_widget_get_screen (GTK_WIDGET (scrollbar));
138 n_monitor = gdk_screen_get_monitor_at_point (screen, x, y - 1);
139- gdk_screen_get_monitor_geometry (screen, n_monitor, (GdkRectangle*) &rect);
140+#ifdef USE_GTK3
141+ gdk_screen_get_monitor_geometry (screen, n_monitor, &rect);
142+#else
143+ gdk_screen_get_monitor_geometry (screen, n_monitor, &gdk_rect);
144+
145+ rect.x = gdk_rect.x;
146+ rect.y = gdk_rect.y;
147+ rect.width = gdk_rect.width;
148+ rect.height = gdk_rect.height;
149+#endif
150
151 if (cairo_region_is_empty (os_workarea))
152 screen_height = rect.y + rect.height;
153@@ -1573,6 +1601,8 @@
154 /* FIXME not implemented yet.
155 * Add support for different scrollbar positions here. */
156 break;
157+ default:
158+ break;
159 }
160
161 return FALSE;
162@@ -2241,17 +2271,22 @@
163 }
164 #endif
165
166-#if USE_GTK3
167+#ifdef USE_GTK3
168 static void
169 os_scrollbar_get_preferred_width (GtkWidget *widget,
170 gint *minimal_width,
171 gint *natural_width)
172 {
173- GtkRequisition requisition;
174-
175- os_scrollbar_size_request (widget, &requisition);
176-
177- *minimal_width = *natural_width = requisition.width;
178+ OsScrollbar *scrollbar;
179+ OsScrollbarPrivate *priv;
180+
181+ scrollbar = OS_SCROLLBAR (widget);
182+ priv = scrollbar->priv;
183+
184+ if (priv->orientation == GTK_ORIENTATION_VERTICAL)
185+ *minimal_width = *natural_width = 0;
186+ else
187+ GTK_WIDGET_CLASS (os_scrollbar_parent_class)->get_preferred_width (widget, minimal_width, natural_width);
188 }
189
190 static void
191@@ -2259,11 +2294,16 @@
192 gint *minimal_height,
193 gint *natural_height)
194 {
195- GtkRequisition requisition;
196-
197- os_scrollbar_size_request (widget, &requisition);
198-
199- *minimal_height = *natural_height = requisition.height;
200+ OsScrollbar *scrollbar;
201+ OsScrollbarPrivate *priv;
202+
203+ scrollbar = OS_SCROLLBAR (widget);
204+ priv = scrollbar->priv;
205+
206+ if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
207+ *minimal_height = *natural_height = 0;
208+ else
209+ GTK_WIDGET_CLASS (os_scrollbar_parent_class)->get_preferred_height (widget, minimal_height, natural_height);
210 }
211 #endif
212
213@@ -2437,6 +2477,7 @@
214 gtk_widget_set_allocation (widget, allocation);
215 }
216
217+#ifndef USE_GTK3
218 static void
219 os_scrollbar_size_request (GtkWidget *widget,
220 GtkRequisition *requisition)
221@@ -2452,10 +2493,9 @@
222 else
223 requisition->height = 0;
224
225-#ifndef USE_GTK3
226 widget->requisition = *requisition;
227+}
228 #endif
229-}
230
231 static void
232 os_scrollbar_unmap (GtkWidget *widget)
233
234=== modified file 'os/os-thumb.c'
235--- os/os-thumb.c 2011-06-15 12:07:47 +0000
236+++ os/os-thumb.c 2011-06-20 16:14:31 +0000
237@@ -142,7 +142,7 @@
238 widget_class->button_press_event = os_thumb_button_press_event;
239 widget_class->button_release_event = os_thumb_button_release_event;
240 widget_class->composited_changed = os_thumb_composited_changed;
241-#if USE_GTK3
242+#ifdef USE_GTK3
243 widget_class->draw = os_thumb_draw;
244 #else
245 widget_class->expose_event = os_thumb_expose;
246@@ -386,7 +386,7 @@
247
248 radius = priv->can_rgba ? THUMB_RADIUS : 0;
249
250-#if USE_GTK3
251+#ifdef USE_GTK3
252 width = gtk_widget_get_allocated_width (widget);
253 height = gtk_widget_get_allocated_height (widget);
254 #else
255@@ -669,7 +669,7 @@
256 os_thumb_screen_changed (GtkWidget *widget,
257 GdkScreen *old_screen)
258 {
259-#if USE_GTK3
260+#ifdef USE_GTK3
261 GdkScreen *screen;
262 GdkVisual *visual;
263

Subscribers

People subscribed via source and target branches