]> Dogcows Code - chaz/openbox/commitdiff
make fullscreen decorations and functions be calculated by the setup_decor_and_functi...
authorDana Jansens <danakj@orodu.net>
Sun, 13 Apr 2003 21:37:32 +0000 (21:37 +0000)
committerDana Jansens <danakj@orodu.net>
Sun, 13 Apr 2003 21:37:32 +0000 (21:37 +0000)
openbox/client.c
openbox/client.h

index 7b7872b37d7a0f8ea5b51093565f92ee6be18901..6f9a753e9cf2bdb98c255c168b1b2bbf9bbbb0af 100644 (file)
@@ -927,6 +927,12 @@ void client_setup_decor_and_functions(Client *self)
     if (!(self->decorations & Decor_Titlebar))
        self->functions &= ~Func_Shade;
 
+    /* now we need to check against rules for the client's current state */
+    if (self->fullscreen) {
+       self->functions &= (Func_Close | Func_Fullscreen | Func_Iconify);
+       self->decorations = 0;
+    }
+
     client_change_allowed_actions(self);
 
     if (self->frame) {
@@ -1413,6 +1419,7 @@ void client_configure(Client *self, Corner anchor, int x, int y, int w, int h,
        y = 0;
        w = screen_physical_size.width;
        h = screen_physical_size.height;
+        user = FALSE; /* ignore that increment etc shit when in fullscreen */
     } else {
         /* set the size and position if maximized */
         if (self->max_horz) {
@@ -1560,13 +1567,6 @@ void client_fullscreen(Client *self, gboolean fs, gboolean savearea)
     client_change_state(self); /* change the state hints on the client */
 
     if (fs) {
-       /* save the functions and remove them */
-       self->pre_fs_func = self->functions;
-       self->functions &= (Func_Close | Func_Fullscreen |
-                           Func_Iconify);
-       /* save the decorations and remove them */
-       self->pre_fs_decor = self->decorations;
-       self->decorations = 0;
        if (savearea) {
            long dimensions[4];
            dimensions[0] = self->area.x;
@@ -1584,9 +1584,6 @@ void client_fullscreen(Client *self, gboolean fs, gboolean savearea)
     } else {
        long *dimensions;
 
-       self->functions = self->pre_fs_func;
-       self->decorations = self->pre_fs_decor;
-         
        if (PROP_GET32A(self->window, openbox_premax, cardinal,
                        dimensions, 4)) {
            x = dimensions[0];
@@ -1605,11 +1602,9 @@ void client_fullscreen(Client *self, gboolean fs, gboolean savearea)
        }
     }
 
-    client_change_allowed_actions(self); /* based on the new _functions */
+    client_setup_decor_and_functions(self);
 
-    /* when fullscreening, don't obey things like increments, fill the
-       screen */
-    client_configure(self, Corner_TopLeft, x, y, w, h, !fs, TRUE);
+    client_configure(self, Corner_TopLeft, x, y, w, h, TRUE, TRUE);
 
     /* raise (back) into our stacking layer */
     stacking_raise(self);
index 3ab555b00097706f63e7f7044ac5ebb96055a75d..36e1b23820bab9a382235b624c115dd3c21c5484 100644 (file)
@@ -276,12 +276,6 @@ typedef struct Client {
     */
     int functions;
 
-    /*! Saved decorations from before becoming fullscreen */
-    int pre_fs_decor;
-
-    /*! Saved functions from before becoming fullscreen */
-    int pre_fs_func;
-
     /*! Icons for the client as specified on the client window */
     Icon *icons;
     /*! The number of icons in icons */
This page took 0.026974 seconds and 4 git commands to generate.