]> Dogcows Code - chaz/openbox/blobdiff - openbox/screen.c
make sure math is done in the right order
[chaz/openbox] / openbox / screen.c
index 51f226a58fad681b9f5ed4d91f7a4cf29c28dd3d..dddb788f1352d469a1146dc62c9e361b8b5f452a 100644 (file)
@@ -641,6 +641,11 @@ void screen_desktop_popup(guint d, gboolean show)
         a = screen_physical_area_monitor(0);
         pager_popup_position(desktop_cycle_popup, CenterGravity,
                              a->x + a->width / 2, a->y + a->height / 2);
+        pager_popup_icon_size_multiplier(desktop_cycle_popup,
+                                         (screen_desktop_layout.columns /
+                                          screen_desktop_layout.rows) / 2,
+                                         (screen_desktop_layout.rows/
+                                          screen_desktop_layout.columns) / 2);
         pager_popup_max_width(desktop_cycle_popup,
                               MAX(a->width/3, POPUP_WIDTH));
         pager_popup_show(desktop_cycle_popup, screen_desktop_names[d], d);
@@ -650,9 +655,12 @@ void screen_desktop_popup(guint d, gboolean show)
 guint screen_cycle_desktop(ObDirection dir, gboolean wrap, gboolean linear,
                            gboolean dialog, gboolean done, gboolean cancel)
 {
-    guint d, r, c;
+    guint r, c;
+    static guint d = (guint)-1;
+    guint ret;
 
-    d = screen_desktop;
+    if (d == (guint)-1)
+        d = screen_desktop;
 
     if ((cancel || done) && dialog)
         goto show_cycle_dialog;
@@ -772,7 +780,12 @@ show_cycle_dialog:
         screen_desktop_popup(d, TRUE);
     } else
         screen_desktop_popup(0, FALSE);
-    return d;
+    ret = d;
+
+    if (!dialog || cancel || done)
+        d = (guint)-1;
+
+    return ret;
 }
 
 void screen_update_layout()
This page took 0.024621 seconds and 4 git commands to generate.