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();
/* 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;
if (changed) {
client_change_state(self);
client_showhide(self);
- screen_update_areas();
+ if (STRUT_EXISTS(self->strut))
+ screen_update_areas();
}
/* iconify all transients */
/* 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)
(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 && \