X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.c;h=94b5c4800572850cd5c741e2b6819351f6a57e25;hb=c5508ec16f094847781188812784eb312d691401;hp=da38843b74e210b56f9694fe644fbc2fed360ed1;hpb=b8f207892a11b53365c47b4828254269fca5c8e9;p=chaz%2Fopenbox diff --git a/openbox/client.c b/openbox/client.c index da38843b..94b5c480 100644 --- a/openbox/client.c +++ b/openbox/client.c @@ -649,6 +649,8 @@ void client_unmanage(ObClient *self) } self->fullscreen = self->max_horz = self->max_vert = FALSE; + /* let it be moved and resized no matter what */ + self->functions = OB_CLIENT_FUNC_MOVE | OB_CLIENT_FUNC_RESIZE; self->decorations = 0; /* unmanaged windows have no decor */ client_move_resize(self, a.x, a.y, a.width, a.height); @@ -1635,11 +1637,13 @@ void client_setup_decor_and_functions(ObClient *self) do with them is move them */ self->decorations = 0; self->functions = OB_CLIENT_FUNC_MOVE; + break; case OB_CLIENT_TYPE_DESKTOP: /* these windows are not manipulated by the window manager */ self->decorations = 0; self->functions = 0; + break; case OB_CLIENT_TYPE_DOCK: /* these windows are not manipulated by the window manager, but they @@ -1700,9 +1704,14 @@ void client_setup_decor_and_functions(ObClient *self) self->decorations &= ~OB_FRAME_DECOR_MAXIMIZE; } - /* kill the handle on fully maxed windows */ - if (self->max_vert && self->max_horz) + if (self->max_horz && self->max_vert) { + /* also can't resize maximized windows. + do this after checking for resize to let you maximize */ + self->functions &=~ OB_CLIENT_FUNC_RESIZE; + + /* kill the handle on fully maxed windows */ 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 */ @@ -3090,7 +3099,7 @@ void client_set_desktop_recursive(ObClient *self, guint old; GSList *it; - if (target != self->desktop) { + if (target != self->desktop && self->type != OB_CLIENT_TYPE_DESKTOP) { ob_debug("Setting desktop %u\n", target+1);