From: Dana Jansens Date: Wed, 9 Jun 2010 13:31:06 +0000 (-0400) Subject: allow a user to set "undecorated" on a window without decorations X-Git-Tag: release-3.5.0~85 X-Git-Url: http://git.openbox.org/?p=dana%2Fopenbox.git;a=commitdiff_plain;h=6d95e2441a1ebba1ec108860d08aceee852c6747 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. --- 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)