summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-08 12:22:28 +0000
committerDana Jansens <danakj@orodu.net>2007-05-08 12:22:28 +0000
commitaae4f66f68b32c8ad2760eeb12ebb9cb3d44602a (patch)
treeccef379e627319055d3e3bc166c49d00001d6f6f /openbox
parentcc9ef6f22d5264a2a6b3c88558134d43ef8d34ea (diff)
recalc the layer when above/below changes
Diffstat (limited to 'openbox')
-rw-r--r--openbox/client.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/openbox/client.c b/openbox/client.c
index 872d964b..c872bbc9 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -3115,6 +3115,8 @@ void client_set_state(ObClient *self, Atom action, glong data1, glong data2)
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 @@ void client_set_state(ObClient *self, Atom action, glong data1, glong data2)
} 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 @@ void client_set_state(ObClient *self, Atom action, glong data1, glong data2)
} 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) {
@@ -3267,6 +3269,12 @@ void client_set_state(ObClient *self, Atom action, glong data1, glong data2)
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 */
}