From 6d95e2441a1ebba1ec108860d08aceee852c6747 Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Wed, 9 Jun 2010 09:31:06 -0400 Subject: [PATCH] allow a user to set "undecorated" on a window without decorations if not based on window type, the app may decide to have decorations again sometime. this was not always legal but chromium has made it so. --- openbox/client.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/openbox/client.c b/openbox/client.c index a714137..4cba7f1 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -1723,6 +1723,13 @@ void client_setup_decor_and_functions(ObClient *self, gboolean reconfig) break; } + /* If the client has no decor from its type (which never changes) then + don't allow the user to "undecorate" the window. Otherwise, allow them + to, even if there are motif hints removing the decor, because those + may change these days (e.g. chromium) */ + if (self->decorations == 0) + self->functions &= ~OB_CLIENT_FUNC_UNDECORATE; + /* Mwm Hints are applied subtractively to what has already been chosen for decor and functionality */ if (self->mwmhints.flags & OB_MWM_FLAG_DECORATIONS) { @@ -1782,11 +1789,6 @@ void client_setup_decor_and_functions(ObClient *self, gboolean reconfig) self->decorations &= ~(OB_FRAME_DECOR_HANDLE | OB_FRAME_DECOR_GRIPS); } - /* If there are no decorations to remove, don't allow the user to try - toggle the state */ - if (self->decorations == 0) - self->functions &= ~OB_CLIENT_FUNC_UNDECORATE; - /* finally, the user can have requested no decorations, which overrides everything (but doesnt give it a border if it doesnt have one) */ if (self->undecorated) -- 1.9.1