Fix maximized windows and such after screen resizings
[dana/openbox.git] / openbox / screen.c
index d368cab..ffe74a0 100644 (file)
@@ -249,6 +249,7 @@ gboolean screen_annex(void)
     supported[i++] = OBT_PROP_ATOM(NET_WM_WINDOW_TYPE_DIALOG);
     supported[i++] = OBT_PROP_ATOM(NET_WM_WINDOW_TYPE_NORMAL);
     supported[i++] = OBT_PROP_ATOM(NET_WM_ALLOWED_ACTIONS);
+    supported[i++] = OBT_PROP_ATOM(NET_WM_WINDOW_OPACITY);
     supported[i++] = OBT_PROP_ATOM(NET_WM_ACTION_MOVE);
     supported[i++] = OBT_PROP_ATOM(NET_WM_ACTION_RESIZE);
     supported[i++] = OBT_PROP_ATOM(NET_WM_ACTION_MINIMIZE);
@@ -479,7 +480,6 @@ void screen_shutdown(gboolean reconfig)
 
 void screen_resize(void)
 {
-    static gint oldw = 0, oldh = 0;
     gint w, h;
     GList *it;
     gulong geometry[2];
@@ -487,10 +487,6 @@ void screen_resize(void)
     w = WidthOfScreen(ScreenOfDisplay(obt_display, ob_screen));
     h = HeightOfScreen(ScreenOfDisplay(obt_display, ob_screen));
 
-    if (w == oldw && h == oldh) return;
-
-    oldw = w; oldh = h;
-
     /* Set the _NET_DESKTOP_GEOMETRY hint */
     screen_physical_size.width = geometry[0] = w;
     screen_physical_size.height = geometry[1] = h;
@@ -503,9 +499,10 @@ void screen_resize(void)
     /* this calls screen_update_areas(), which we need ! */
     dock_configure();
 
-    if (oldw)
-        for (it = client_list; it; it = g_list_next(it))
-            client_move_onscreen(it->data, FALSE);
+    for (it = client_list; it; it = g_list_next(it)) {
+        client_move_onscreen(it->data, FALSE);
+        client_reconfigure(it->data, FALSE);
+    }
 }
 
 void screen_set_num_desktops(guint num)