recalc the layer when above/below changes
Dana Jansens danakj@orodu.net
1 files changed,
14 insertions(+),
6 deletions(-)
jump to
M
openbox/client.c
→
openbox/client.c
@@ -3115,6 +3115,8 @@ gboolean max_vert = self->max_vert;
gboolean modal = self->modal; gboolean iconic = self->iconic; gboolean demands_attention = self->demands_attention; + gboolean above = self->above; + gboolean below = self->below; gint i; if (!(action == prop_atoms.net_wm_state_add ||@@ -3191,11 +3193,11 @@ iconic = TRUE;
} else if (state == prop_atoms.net_wm_state_fullscreen) { fullscreen = TRUE; } else if (state == prop_atoms.net_wm_state_above) { - self->above = TRUE; - self->below = FALSE; + above = TRUE; + below = FALSE; } else if (state == prop_atoms.net_wm_state_below) { - self->above = FALSE; - self->below = TRUE; + above = FALSE; + below = TRUE; } else if (state == prop_atoms.net_wm_state_demands_attention) { demands_attention = TRUE; } else if (state == prop_atoms.openbox_wm_state_undecorated) {@@ -3220,9 +3222,9 @@ iconic = FALSE;
} else if (state == prop_atoms.net_wm_state_fullscreen) { fullscreen = FALSE; } else if (state == prop_atoms.net_wm_state_above) { - self->above = FALSE; + above = FALSE; } else if (state == prop_atoms.net_wm_state_below) { - self->below = FALSE; + below = FALSE; } else if (state == prop_atoms.net_wm_state_demands_attention) { demands_attention = FALSE; } else if (state == prop_atoms.openbox_wm_state_undecorated) {@@ -3266,6 +3268,12 @@ client_iconify(self, iconic, FALSE);
if (demands_attention != self->demands_attention) client_hilite(self, demands_attention); + + if (above != self->above || below != self->below) { + self->above = above; + self->below = below; + client_calc_layer(self); + } client_change_state(self); /* change the hint to reflect these changes */ }