only update the screen areas when a window actually has a strut (or when the strut...
authorDana Jansens <danakj@orodu.net>
Fri, 2 Mar 2007 15:19:39 +0000 (15:19 +0000)
committerDana Jansens <danakj@orodu.net>
Fri, 2 Mar 2007 15:19:39 +0000 (15:19 +0000)
openbox/client.c
openbox/geom.h

index 056a978..0389d76 100644 (file)
@@ -476,7 +476,8 @@ void client_manage(Window window)
     g_hash_table_insert(window_map, &self->window, self);
 
     /* this has to happen after we're in the client_list */
-    screen_update_areas();
+    if (STRUT_EXISTS(self->strut))
+        screen_update_areas();
 
     /* update the list hints */
     client_set_list();
@@ -523,7 +524,8 @@ void client_unmanage(ObClient *self)
 
     /* once the client is out of the list, update the struts to remove it's
        influence */
-    screen_update_areas();
+    if (STRUT_EXISTS(self->strut))
+        screen_update_areas();
 
     for (it = client_destructors; it; it = g_slist_next(it)) {
         Destructor *d = it->data;
@@ -2354,7 +2356,8 @@ static void client_iconify_recursive(ObClient *self,
     if (changed) {
         client_change_state(self);
         client_showhide(self);
-        screen_update_areas();
+        if (STRUT_EXISTS(self->strut))
+            screen_update_areas();
     }
 
     /* iconify all transients */
@@ -2540,7 +2543,8 @@ void client_set_desktop_recursive(ObClient *self,
         /* raise if it was not already on the desktop */
         if (old != DESKTOP_ALL)
             client_raise(self);
-        screen_update_areas();
+        if (STRUT_EXISTS(self->strut))
+            screen_update_areas();
 
         /* add to the new desktop(s) */
         if (config_focus_new)
index fed3918..e77228c 100644 (file)
@@ -113,6 +113,9 @@ typedef struct _StrutPartial {
     (s1).top = MAX((s1).top, (s2).top), \
     (s1).bottom = MAX((s1).bottom, (s2).bottom)
 
+#define STRUT_EXISTS(s1) \
+    ((s1).left || (s1).top || (s1).right || (s1).bottom)
+
 #define STRUT_EQUAL(s1, s2) \
     ((s1).left == (s2).left && \
      (s1).top == (s2).top && \