]> Dogcows Code - chaz/openbox/blobdiff - openbox/client.c
we put desktop windows on all desktops so dont let them move.
[chaz/openbox] / openbox / client.c
index da38843b74e210b56f9694fe644fbc2fed360ed1..94b5c4800572850cd5c741e2b6819351f6a57e25 100644 (file)
@@ -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);
 
This page took 0.02237 seconds and 4 git commands to generate.