summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-08-05 07:39:44 +0000
committerDana Jansens <danakj@orodu.net>2003-08-05 07:39:44 +0000
commit853d5f4b70ccc475ae25806a6683406119236b29 (patch)
tree9325af608f4fd3f8494357a69a7f8e2a63f4612e
parent20aca7fb7a21e5b88eae0d749a3c4a34dde39ebb (diff)
when setting up decor on a window, it needs to reconfigure twice if the decor changes, cuz the constraints need the new frame sizes to work right
-rw-r--r--openbox/client.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/openbox/client.c b/openbox/client.c
index 1f1d8032..ebff0bae 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -1114,12 +1114,13 @@ void client_setup_decor_and_functions(ObClient *self)
client_change_allowed_actions(self);
if (self->frame) {
- /* this makes sure that these windows appear on all desktops */
- if (self->type == OB_CLIENT_TYPE_DESKTOP &&
- self->desktop != DESKTOP_ALL)
- client_set_desktop(self, DESKTOP_ALL, FALSE);
-
- /* adjust the client's decorations, etc. */
+ if (self->decorations != self->frame->decorations)
+ /* adjust the client's decorations, etc. */
+ client_reconfigure(self);
+ /* we actually have to do this twice :P
+ the first time it removes the decorations, but now it may need to
+ be reconstrained for being maximized etc, so calling this again
+ will work with the new setup of decorations on the window */
client_reconfigure(self);
} else {
/* this makes sure that these windows appear on all desktops */