]> Dogcows Code - chaz/openbox/blobdiff - openbox/screen.c
make popup dialogs appear on the active monitor with xinerama
[chaz/openbox] / openbox / screen.c
index 9cfc1850250455c33f928d52224196d888f06792..a9b045ff99de68c2d890da82c96e4d2db10fe08c 100644 (file)
@@ -731,7 +731,7 @@ void screen_desktop_popup(guint d, gboolean show)
     if (!show) {
         pager_popup_hide(desktop_cycle_popup);
     } else {
-        a = screen_physical_area_monitor(0);
+        a = screen_physical_area_monitor_active();
         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,
@@ -1365,6 +1365,24 @@ Rect *screen_physical_area_monitor(guint head)
     return &monitor_area[head];
 }
 
+Rect *screen_physical_area_monitor_active()
+{
+    Rect *a;
+    gint x, y;
+
+    if (focus_client)
+        a = screen_physical_area_monitor(client_monitor(focus_client));
+    else {
+        Rect mon;
+        if (screen_pointer_pos(&x, &y))
+            RECT_SET(mon, x, y, 1, 1);
+        else
+            RECT_SET(mon, 0, 0, 1, 1);
+        a = screen_physical_area_monitor(screen_find_monitor(&mon));
+    }
+    return a;
+}
+
 void screen_set_root_cursor()
 {
     if (sn_app_starting())
This page took 0.024706 seconds and 4 git commands to generate.