Merge lp:~larsu/notify-osd/always-use-workarea into lp:notify-osd

Proposed by Lars Karlitski
Status: Merged
Approved by: Sebastien Bacher
Approved revision: 486
Merged at revision: 482
Proposed branch: lp:~larsu/notify-osd/always-use-workarea
Merge into: lp:notify-osd
Diff against target: 681 lines (+45/-493)
3 files modified
src/defaults.c (+45/-437)
src/defaults.h (+0/-4)
tests/test-defaults.c (+0/-52)
To merge this branch: bzr merge lp:~larsu/notify-osd/always-use-workarea
Reviewer Review Type Date Requested Status
Mirco Müller (community) Approve
PS Jenkins bot (community) continuous-integration Approve
Sebastien Bacher Approve
Review via email: mp+206145@code.launchpad.net

Commit message

Don't place bubbles over panels on secondary monitors

Using heuristics to find panels didn't prove to be very stable. Instead, use _NET_WORKAREA to find out about the panel size on the primary monitor and assume it's the same on every other monitor as well.

Description of the change

Don't place bubbles over panels on secondary monitors

Using heuristics to find panels didn't prove to be very stable. Instead, use _NET_WORKAREA to find out about the panel size on the primary monitor and assume it's the same on every other monitor as well.

To post a comment you must log in.
Revision history for this message
Sebastien Bacher (seb128) wrote :

Nice work, works great under unity!

I've tested:
- dual monitor
- focus follow on and off
- different monitor geometries
- different configuration (left-right, top-bottom, aligned on left/right/bottom top borders)

Things worked as they should in all those scenarios, less code is good as well!

review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Mirco Müller (macslow) wrote :

The unit-test for the defaults class needs to be fixed/updated (run "make check").

review: Needs Fixing
Revision history for this message
Lars Karlitski (larsu) wrote :

Ah true. Thanks. I wonder why Jenkins didn't catch that.

486. By Lars Karlitski

defaults: call get_top_corner() once to initialize screen size

Revision history for this message
Sebastien Bacher (seb128) wrote :

> I wonder why Jenkins didn't catch that.

We don't run make check as part of the package build and jenkins has no knowledge of extra tests to run

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Mirco Müller (macslow) wrote :

Good to go!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'src/defaults.c'
--- src/defaults.c 2012-08-29 22:05:41 +0000
+++ src/defaults.c 2014-02-13 12:46:35 +0000
@@ -44,12 +44,6 @@
44enum44enum
45{45{
46 PROP_DUMMY = 0,46 PROP_DUMMY = 0,
47 PROP_DESKTOP_WIDTH,
48 PROP_DESKTOP_HEIGHT,
49 PROP_DESKTOP_TOP,
50 PROP_DESKTOP_BOTTOM,
51 PROP_DESKTOP_LEFT,
52 PROP_DESKTOP_RIGHT,
53 PROP_DESKTOP_BOTTOM_GAP,47 PROP_DESKTOP_BOTTOM_GAP,
54 PROP_STACK_HEIGHT,48 PROP_STACK_HEIGHT,
55 PROP_BUBBLE_VERT_GAP,49 PROP_BUBBLE_VERT_GAP,
@@ -335,75 +329,6 @@
335 }329 }
336}330}
337331
338void
339defaults_refresh_screen_dimension_properties (Defaults *self)
340{
341 Atom real_type;
342 gint result;
343 gint real_format;
344 gulong items_read;
345 gulong items_left;
346 glong* coords;
347 Atom workarea_atom;
348 Display* display;
349
350 g_return_if_fail ((self != NULL) && IS_DEFAULTS (self));
351
352 /* get real desktop-area without the panels */
353 workarea_atom = gdk_x11_get_xatom_by_name ("_NET_WORKAREA");
354 display = gdk_x11_display_get_xdisplay (gdk_display_get_default ());
355
356 gdk_error_trap_push ();
357 result = XGetWindowProperty (display,
358 GDK_ROOT_WINDOW (),
359 workarea_atom,
360 0L,
361 4L,
362 False,
363 XA_CARDINAL,
364 &real_type,
365 &real_format,
366 &items_read,
367 &items_left,
368 (guchar **) (void*) &coords);
369 gdk_flush ();
370 gdk_error_trap_pop_ignored ();
371
372 if (result == Success && items_read)
373 {
374 g_object_set (self,
375 "desktop-width",
376 (gint) coords[2],
377 NULL);
378 g_object_set (self,
379 "desktop-height",
380 (gint) coords[3],
381 NULL);
382 g_object_set (self,
383 "desktop-top",
384 (gint) coords[1],
385 NULL);
386 g_object_set (self,
387 "desktop-bottom",
388 (gint) coords[3],
389 NULL);
390 g_object_set (self,
391 "desktop-left",
392 (gint) coords[0],
393 NULL);
394 g_object_set (self,
395 "desktop-right",
396 (gint) coords[2],
397 NULL);
398 /* FIXME: use new upper and lower threshold/limits for stack */
399 /*g_object_set (self,
400 "stack-height",
401 (gint) coords[3] / 2,
402 NULL);*/
403 XFree (coords);
404 }
405}
406
407static void332static void
408defaults_constructed (GObject* gobject)333defaults_constructed (GObject* gobject)
409{334{
@@ -412,10 +337,13 @@
412 gdouble icon_size;337 gdouble icon_size;
413 gdouble bubble_height;338 gdouble bubble_height;
414 gdouble new_bubble_height;339 gdouble new_bubble_height;
340 GdkScreen* screen;
341 gint x;
342 gint y;
415343
416 self = DEFAULTS (gobject);344 self = DEFAULTS (gobject);
417345
418 defaults_refresh_screen_dimension_properties (self);346 defaults_get_top_corner (self, &screen, &x, &y);
419 defaults_refresh_bg_color_property (self);347 defaults_refresh_bg_color_property (self);
420348
421 /* grab system-wide font-face/size and DPI */349 /* grab system-wide font-face/size and DPI */
@@ -561,30 +489,6 @@
561489
562 switch (prop)490 switch (prop)
563 {491 {
564 case PROP_DESKTOP_WIDTH:
565 g_value_set_int (value, defaults->desktop_width);
566 break;
567
568 case PROP_DESKTOP_HEIGHT:
569 g_value_set_int (value, defaults->desktop_height);
570 break;
571
572 case PROP_DESKTOP_TOP:
573 g_value_set_int (value, defaults->desktop_top);
574 break;
575
576 case PROP_DESKTOP_BOTTOM:
577 g_value_set_int (value, defaults->desktop_bottom);
578 break;
579
580 case PROP_DESKTOP_LEFT:
581 g_value_set_int (value, defaults->desktop_left);
582 break;
583
584 case PROP_DESKTOP_RIGHT:
585 g_value_set_int (value, defaults->desktop_right);
586 break;
587
588 case PROP_DESKTOP_BOTTOM_GAP:492 case PROP_DESKTOP_BOTTOM_GAP:
589 g_value_set_double (value, defaults->desktop_bottom_gap);493 g_value_set_double (value, defaults->desktop_bottom_gap);
590 break;494 break;
@@ -743,30 +647,6 @@
743647
744 switch (prop)648 switch (prop)
745 {649 {
746 case PROP_DESKTOP_WIDTH:
747 defaults->desktop_width = g_value_get_int (value);
748 break;
749
750 case PROP_DESKTOP_HEIGHT:
751 defaults->desktop_height = g_value_get_int (value);
752 break;
753
754 case PROP_DESKTOP_TOP:
755 defaults->desktop_top = g_value_get_int (value);
756 break;
757
758 case PROP_DESKTOP_BOTTOM:
759 defaults->desktop_bottom = g_value_get_int (value);
760 break;
761
762 case PROP_DESKTOP_LEFT:
763 defaults->desktop_left = g_value_get_int (value);
764 break;
765
766 case PROP_DESKTOP_RIGHT:
767 defaults->desktop_right = g_value_get_int (value);
768 break;
769
770 case PROP_DESKTOP_BOTTOM_GAP:650 case PROP_DESKTOP_BOTTOM_GAP:
771 defaults->desktop_bottom_gap = g_value_get_double (value);651 defaults->desktop_bottom_gap = g_value_get_double (value);
772 break;652 break;
@@ -956,13 +836,6 @@
956{836{
957 GObjectClass* gobject_class = G_OBJECT_CLASS (klass);837 GObjectClass* gobject_class = G_OBJECT_CLASS (klass);
958838
959 GdkScreen* screen = gdk_screen_get_default ();
960 GParamSpec* property_desktop_width;
961 GParamSpec* property_desktop_height;
962 GParamSpec* property_desktop_top;
963 GParamSpec* property_desktop_bottom;
964 GParamSpec* property_desktop_left;
965 GParamSpec* property_desktop_right;
966 GParamSpec* property_desktop_bottom_gap;839 GParamSpec* property_desktop_bottom_gap;
967 GParamSpec* property_stack_height;840 GParamSpec* property_stack_height;
968 GParamSpec* property_bubble_vert_gap;841 GParamSpec* property_bubble_vert_gap;
@@ -1025,90 +898,6 @@
1025 G_TYPE_NONE,898 G_TYPE_NONE,
1026 0);899 0);
1027900
1028 property_desktop_width = g_param_spec_int (
1029 "desktop-width",
1030 "desktop-width",
1031 "Width of desktop in pixels",
1032 0,
1033 G_MAXINT,
1034 gdk_screen_get_width (screen),
1035 G_PARAM_CONSTRUCT |
1036 G_PARAM_READWRITE |
1037 G_PARAM_STATIC_STRINGS);
1038 g_object_class_install_property (gobject_class,
1039 PROP_DESKTOP_WIDTH,
1040 property_desktop_width);
1041
1042 property_desktop_height = g_param_spec_int (
1043 "desktop-height",
1044 "desktop-height",
1045 "Height of desktop in pixels",
1046 0,
1047 G_MAXINT,
1048 gdk_screen_get_height (screen),
1049 G_PARAM_CONSTRUCT |
1050 G_PARAM_READWRITE |
1051 G_PARAM_STATIC_STRINGS);
1052 g_object_class_install_property (gobject_class,
1053 PROP_DESKTOP_HEIGHT,
1054 property_desktop_height);
1055
1056 property_desktop_top = g_param_spec_int (
1057 "desktop-top",
1058 "desktop-top",
1059 "Top of desktop in pixels",
1060 0,
1061 G_MAXINT,
1062 0,
1063 G_PARAM_CONSTRUCT |
1064 G_PARAM_READWRITE |
1065 G_PARAM_STATIC_STRINGS);
1066 g_object_class_install_property (gobject_class,
1067 PROP_DESKTOP_TOP,
1068 property_desktop_top);
1069
1070 property_desktop_bottom = g_param_spec_int (
1071 "desktop-bottom",
1072 "desktop-bottom",
1073 "Bottom of desktop in pixels",
1074 0,
1075 G_MAXINT,
1076 G_MAXINT,
1077 G_PARAM_CONSTRUCT |
1078 G_PARAM_READWRITE |
1079 G_PARAM_STATIC_STRINGS);
1080 g_object_class_install_property (gobject_class,
1081 PROP_DESKTOP_BOTTOM,
1082 property_desktop_bottom);
1083
1084 property_desktop_left = g_param_spec_int (
1085 "desktop-left",
1086 "desktop-left",
1087 "Left of desktop in pixels",
1088 0,
1089 G_MAXINT,
1090 0,
1091 G_PARAM_CONSTRUCT |
1092 G_PARAM_READWRITE |
1093 G_PARAM_STATIC_STRINGS);
1094 g_object_class_install_property (gobject_class,
1095 PROP_DESKTOP_LEFT,
1096 property_desktop_left);
1097
1098 property_desktop_right = g_param_spec_int (
1099 "desktop-right",
1100 "desktop-right",
1101 "Right of desktop in pixels",
1102 0,
1103 G_MAXINT,
1104 G_MAXINT,
1105 G_PARAM_CONSTRUCT |
1106 G_PARAM_READWRITE |
1107 G_PARAM_STATIC_STRINGS);
1108 g_object_class_install_property (gobject_class,
1109 PROP_DESKTOP_RIGHT,
1110 property_desktop_right);
1111
1112 property_desktop_bottom_gap = g_param_spec_double (901 property_desktop_bottom_gap = g_param_spec_double (
1113 "desktop-bottom-gap",902 "desktop-bottom-gap",
1114 "desktop-bottom-gap",903 "desktop-bottom-gap",
@@ -1569,79 +1358,19 @@
1569gint1358gint
1570defaults_get_desktop_width (Defaults* self)1359defaults_get_desktop_width (Defaults* self)
1571{1360{
1572 gint width;
1573
1574 if (!self || !IS_DEFAULTS (self))1361 if (!self || !IS_DEFAULTS (self))
1575 return 0;1362 return 0;
15761363
1577 g_object_get (self, "desktop-width", &width, NULL);1364 return self->desktop_width;
1578
1579 return width;
1580}1365}
15811366
1582gint1367gint
1583defaults_get_desktop_height (Defaults* self)1368defaults_get_desktop_height (Defaults* self)
1584{1369{
1585 gint height;1370 if (!self || !IS_DEFAULTS (self))
15861371 return 0;
1587 if (!self || !IS_DEFAULTS (self))1372
1588 return 0;1373 return self->desktop_height;
1589
1590 g_object_get (self, "desktop-height", &height, NULL);
1591
1592 return height;
1593}
1594
1595gint
1596defaults_get_desktop_top (Defaults* self)
1597{
1598 gint top_edge;
1599
1600 if (!self || !IS_DEFAULTS (self))
1601 return 0;
1602
1603 g_object_get (self, "desktop-top", &top_edge, NULL);
1604
1605 return top_edge;
1606}
1607
1608gint
1609defaults_get_desktop_bottom (Defaults* self)
1610{
1611 gint bottom_edge;
1612
1613 if (!self || !IS_DEFAULTS (self))
1614 return 0;
1615
1616 g_object_get (self, "desktop-bottom", &bottom_edge, NULL);
1617
1618 return bottom_edge;
1619}
1620
1621gint
1622defaults_get_desktop_left (Defaults* self)
1623{
1624 gint left_edge;
1625
1626 if (!self || !IS_DEFAULTS (self))
1627 return 0;
1628
1629 g_object_get (self, "desktop-left", &left_edge, NULL);
1630
1631 return left_edge;
1632}
1633
1634gint
1635defaults_get_desktop_right (Defaults* self)
1636{
1637 gint right_edge;
1638
1639 if (!self || !IS_DEFAULTS (self))
1640 return 0;
1641
1642 g_object_get (self, "desktop-right", &right_edge, NULL);
1643
1644 return right_edge;
1645}1374}
16461375
1647gdouble1376gdouble
@@ -2131,94 +1860,18 @@
2131 return mode;1860 return mode;
2132}1861}
21331862
2134static gboolean
2135_window_look_for_top_panel_attributes (GdkWindow *win)
2136{
2137 XClassHint class_hints = {0, 0};
2138 gboolean is_panel = FALSE;
2139 GdkRectangle frame;
2140 int result;
2141
2142 if (win == NULL) return FALSE;
2143
2144 gdk_error_trap_push ();
2145
2146 result = XGetClassHint (gdk_x11_display_get_xdisplay (gdk_display_get_default ()),
2147 GDK_WINDOW_XID (win),
2148 &class_hints);
2149
2150 if (! result || class_hints.res_class == NULL)
2151 goto failed;
2152
2153 if (g_strcmp0 (class_hints.res_name, "gnome-panel"))
2154 goto failed;
2155
2156 /* discard dialog windows like panel properties or the applet directory... */
2157 if (wnck_window_get_window_type (wnck_window_get (GDK_WINDOW_XID (win)))
2158 != WNCK_WINDOW_DOCK)
2159 goto failed;
2160
2161 /* select only the top panel */
2162 gdk_window_get_frame_extents (win, &frame);
2163 if (frame.x != 0 || frame.y != 0)
2164 goto failed;
2165
2166 if (frame.width < frame.height)
2167 goto failed;
2168
2169 is_panel = TRUE;
2170
2171failed:
2172 if (class_hints.res_class)
2173 XFree (class_hints.res_class);
2174 if (class_hints.res_name)
2175 XFree (class_hints.res_name);
2176
2177 gdk_error_trap_pop_ignored ();
2178
2179 return is_panel;
2180}
2181
2182static GdkWindow*
2183get_panel_window (void)
2184{
2185 GdkWindow *panel_window = NULL;
2186 GList *window;
2187 GList *iter;
2188
2189 window = gdk_screen_get_window_stack (gdk_screen_get_default ());
2190
2191 for (iter = g_list_first (window);
2192 iter != NULL;
2193 iter = g_list_next (iter))
2194 {
2195 if (_window_look_for_top_panel_attributes (iter->data))
2196 {
2197 panel_window = iter->data;
2198 break;
2199 }
2200 }
2201
2202 g_list_free (window);
2203
2204 return panel_window;
2205}
2206
2207void1863void
2208defaults_get_top_corner (Defaults *self, GdkScreen **screen, gint *x, gint *y)1864defaults_get_top_corner (Defaults *self, GdkScreen **screen, gint *x, gint *y)
2209{1865{
2210 GdkRectangle rect;1866 GdkRectangle rect;
2211 GdkRectangle panel_rect = {0, 0, 0, 0};
2212 GdkWindow* active_window = NULL;1867 GdkWindow* active_window = NULL;
2213 GdkWindow* panel_window = NULL;
2214 gint mx;1868 gint mx;
2215 gint my;1869 gint my;
2216 gint monitor = 0;1870 gint monitor = 0;
2217 gint panel_monitor = 0;
2218 gint aw_monitor;1871 gint aw_monitor;
2219 gboolean has_panel_window = FALSE;
2220 gboolean follow_focus = defaults_multihead_does_focus_follow (self);1872 gboolean follow_focus = defaults_multihead_does_focus_follow (self);
2221 gboolean is_composited = FALSE;1873 gboolean is_composited = FALSE;
1874 gint primary_monitor;
22221875
2223 g_return_if_fail (self != NULL && IS_DEFAULTS (self));1876 g_return_if_fail (self != NULL && IS_DEFAULTS (self));
22241877
@@ -2229,23 +1882,6 @@
2229 NULL);1882 NULL);
22301883
2231 is_composited = gdk_screen_is_composited (*screen);1884 is_composited = gdk_screen_is_composited (*screen);
2232 panel_window = get_panel_window ();
2233
2234 if (panel_window != NULL)
2235 {
2236 gdk_window_get_frame_extents (panel_window, &panel_rect);
2237 panel_monitor = gdk_screen_get_monitor_at_window (*screen,
2238 panel_window);
2239 monitor = panel_monitor;
2240 g_debug ("found panel (%d,%d) - %dx%d on monitor %d",
2241 panel_rect.x,
2242 panel_rect.y,
2243 panel_rect.width,
2244 panel_rect.height,
2245 monitor);
2246
2247 has_panel_window = TRUE;
2248 }
22491885
2250 if (follow_focus)1886 if (follow_focus)
2251 {1887 {
@@ -2271,7 +1907,39 @@
2271 }1907 }
2272 }1908 }
22731909
2274 gdk_screen_get_monitor_geometry (*screen, monitor, &rect);1910 /* _NET_WORKAREA is always a rectangle spanning all monitors of
1911 * a screen. As such, it can't properly deal with monitor setups
1912 * that aren't aligned or have different resolutions.
1913 * gdk_screen_get_monitor_workarea() works around this by only
1914 * returning the workarea for the primary screen and the full
1915 * geometry for all other monitors.
1916 *
1917 * This leads to the sync bubbles sometimes overlapping the
1918 * panel on secondary monitors. To work around this, we get the
1919 * panel's height on the primary monitor and use that for all
1920 * other monitors as well.
1921 */
1922
1923 primary_monitor = gdk_screen_get_primary_monitor (*screen);
1924 if (monitor == primary_monitor)
1925 {
1926 gdk_screen_get_monitor_workarea (*screen, primary_monitor, &rect);
1927 }
1928 else
1929 {
1930 GdkRectangle workarea;
1931 GdkRectangle primary_geom;
1932 gint panel_height;
1933
1934 gdk_screen_get_monitor_workarea (*screen, primary_monitor, &workarea);
1935 gdk_screen_get_monitor_geometry (*screen, primary_monitor, &primary_geom);
1936 panel_height = workarea.y - primary_geom.y;
1937
1938 gdk_screen_get_monitor_geometry (*screen, monitor, &rect);
1939 rect.y += panel_height;
1940 rect.height -= panel_height;
1941 }
1942
2275 g_debug ("selecting monitor %d at (%d,%d) - %dx%d",1943 g_debug ("selecting monitor %d at (%d,%d) - %dx%d",
2276 monitor,1944 monitor,
2277 rect.x,1945 rect.x,
@@ -2279,73 +1947,13 @@
2279 rect.width,1947 rect.width,
2280 rect.height);1948 rect.height);
22811949
2282 /* Position the top left corner of the stack. */1950 self->desktop_width = rect.width;
2283 if (has_panel_window &&1951 self->desktop_height = rect.height;
2284 panel_monitor == monitor)
2285 {
2286 /* position the corner on the selected monitor */
2287 rect.y += panel_rect.y + panel_rect.height;
2288 } else if (! (has_panel_window || follow_focus))
2289 {
2290 g_debug ("no panel detetected; using workarea fallback");
2291
2292 defaults_refresh_screen_dimension_properties (self);
2293
2294 /* workarea rectangle */
2295 g_object_get (self, "desktop-left", &rect.x, NULL);
2296 g_object_get (self, "desktop-top", &rect.y, NULL);
2297 g_object_get (self, "desktop-width", &rect.width, NULL);
2298 g_object_get (self, "desktop-height", &rect.height, NULL);
2299 }
23001952
2301 *y = rect.y;1953 *y = rect.y;
2302 *y += EM2PIXELS (defaults_get_bubble_vert_gap (self), self)1954 *y += EM2PIXELS (defaults_get_bubble_vert_gap (self), self)
2303 - EM2PIXELS (defaults_get_bubble_shadow_size (self, is_composited), self);1955 - EM2PIXELS (defaults_get_bubble_shadow_size (self, is_composited), self);
23041956
2305 /* correct potential offset in multi-monitor setups with two (or more)
2306 * monitors side by side, all having different vertical resolutions and
2307 * being aligned at the bottom edge, thus creating an "invisible" area at
2308 * the top edge of the monitor with the lowest vertical resolution,
2309 * LP: #716458 */
2310 GdkRectangle cur_geo = {0, 0, 0, 0};
2311 int num_monitors = gdk_screen_get_n_monitors (*screen);
2312 int screen_width = gdk_screen_get_width (*screen);
2313 int screen_height = gdk_screen_get_height (*screen);
2314
2315 if (!follow_focus && num_monitors > 1)
2316 {
2317 int vert_offset = 0;
2318
2319 if (gtk_widget_get_default_direction () == GTK_TEXT_DIR_LTR)
2320 {
2321 int right_most_monitor = 0;
2322
2323 right_most_monitor = gdk_screen_get_monitor_at_point (*screen,
2324 screen_width,
2325 screen_height / 2);
2326 gdk_screen_get_monitor_geometry (*screen,
2327 right_most_monitor,
2328 &cur_geo);
2329 if (cur_geo.y != 0)
2330 vert_offset = cur_geo.y;
2331 }
2332 else
2333 {
2334 int left_most_monitor = 0;
2335
2336 left_most_monitor = gdk_screen_get_monitor_at_point (*screen,
2337 0,
2338 screen_height / 2);
2339 gdk_screen_get_monitor_geometry (*screen,
2340 left_most_monitor,
2341 &cur_geo);
2342 if (cur_geo.y != 0)
2343 vert_offset = cur_geo.y;
2344 }
2345
2346 *y += vert_offset;
2347 }
2348
2349 if (gtk_widget_get_default_direction () == GTK_TEXT_DIR_LTR)1957 if (gtk_widget_get_default_direction () == GTK_TEXT_DIR_LTR)
2350 {1958 {
2351 *x = rect.x + rect.width;1959 *x = rect.x + rect.width;
23521960
=== modified file 'src/defaults.h'
--- src/defaults.h 2012-08-29 22:05:41 +0000
+++ src/defaults.h 2014-02-13 12:46:35 +0000
@@ -79,10 +79,6 @@
79 GSettings* gnome_settings;79 GSettings* gnome_settings;
80 gint desktop_width;80 gint desktop_width;
81 gint desktop_height;81 gint desktop_height;
82 gint desktop_top;
83 gint desktop_bottom;
84 gint desktop_left;
85 gint desktop_right;
86 gdouble desktop_bottom_gap;82 gdouble desktop_bottom_gap;
87 gdouble stack_height;83 gdouble stack_height;
88 gdouble bubble_vert_gap;84 gdouble bubble_vert_gap;
8985
=== modified file 'tests/test-defaults.c'
--- tests/test-defaults.c 2009-09-15 12:38:22 +0000
+++ tests/test-defaults.c 2014-02-13 12:46:35 +0000
@@ -77,54 +77,6 @@
7777
78static78static
79void79void
80test_defaults_get_desktop_top ()
81{
82 Defaults* defaults = NULL;
83
84 defaults = defaults_new ();
85 g_assert_cmpint (defaults_get_desktop_top (defaults), <=, G_MAXINT);
86 g_assert_cmpint (defaults_get_desktop_top (defaults), >=, 0);
87 g_object_unref (defaults);
88}
89
90static
91void
92test_defaults_get_desktop_bottom ()
93{
94 Defaults* defaults = NULL;
95
96 defaults = defaults_new ();
97 g_assert_cmpint (defaults_get_desktop_bottom (defaults), <=, G_MAXINT);
98 g_assert_cmpint (defaults_get_desktop_bottom (defaults), >=, 0);
99 g_object_unref (defaults);
100}
101
102static
103void
104test_defaults_get_desktop_left ()
105{
106 Defaults* defaults = NULL;
107
108 defaults = defaults_new ();
109 g_assert_cmpint (defaults_get_desktop_left (defaults), <=, G_MAXINT);
110 g_assert_cmpint (defaults_get_desktop_left (defaults), >=, 0);
111 g_object_unref (defaults);
112}
113
114static
115void
116test_defaults_get_desktop_right ()
117{
118 Defaults* defaults = NULL;
119
120 defaults = defaults_new ();
121 g_assert_cmpint (defaults_get_desktop_right (defaults), <=, G_MAXINT);
122 g_assert_cmpint (defaults_get_desktop_right (defaults), >=, 0);
123 g_object_unref (defaults);
124}
125
126static
127void
128test_defaults_get_stack_height ()80test_defaults_get_stack_height ()
129{81{
130 Defaults* defaults = NULL;82 Defaults* defaults = NULL;
@@ -200,10 +152,6 @@
200 g_test_suite_add(ts, TC(test_defaults_del));152 g_test_suite_add(ts, TC(test_defaults_del));
201 g_test_suite_add(ts, TC(test_defaults_get_desktop_width));153 g_test_suite_add(ts, TC(test_defaults_get_desktop_width));
202 g_test_suite_add(ts, TC(test_defaults_get_desktop_height));154 g_test_suite_add(ts, TC(test_defaults_get_desktop_height));
203 g_test_suite_add(ts, TC(test_defaults_get_desktop_top));
204 g_test_suite_add(ts, TC(test_defaults_get_desktop_bottom));
205 g_test_suite_add(ts, TC(test_defaults_get_desktop_left));
206 g_test_suite_add(ts, TC(test_defaults_get_desktop_right));
207 g_test_suite_add(ts, TC(test_defaults_get_stack_height));155 g_test_suite_add(ts, TC(test_defaults_get_stack_height));
208 g_test_suite_add(ts, TC(test_defaults_get_bubble_width));156 g_test_suite_add(ts, TC(test_defaults_get_bubble_width));
209 g_test_suite_add(ts, TC(test_defaults_get_gravity));157 g_test_suite_add(ts, TC(test_defaults_get_gravity));

Subscribers

People subscribed via source and target branches