diff options
| author | Dana Jansens <danakj@orodu.net> | 2007-03-02 15:19:39 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2007-03-02 15:19:39 +0000 |
| commit | 140c5313cfe38aada8bd15892f74fc0d21d374c1 (patch) | |
| tree | 7ad0dbc5ed50a4a85310b5f3298f68dae1913112 /openbox | |
| parent | 80a6f06c0a3d6de2c7d94066c5a9764b97a600af (diff) | |
only update the screen areas when a window actually has a strut (or when the strut changes), don't waste extra calls to screen areas, because it makes people redraw when they don't need to
Diffstat (limited to 'openbox')
| -rw-r--r-- | openbox/client.c | 12 | ||||
| -rw-r--r-- | openbox/geom.h | 3 |
2 files changed, 11 insertions, 4 deletions
diff --git a/openbox/client.c b/openbox/client.c index 056a9780..0389d768 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -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) diff --git a/openbox/geom.h b/openbox/geom.h index fed39188..e77228c1 100644 --- a/openbox/geom.h +++ b/openbox/geom.h @@ -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 && \ |
