dwm

my fork of dwm
Index Commits Files Refs README LICENSE
commit 820cbb3545e60e4d2bad120fb6e691c80058a98c
parent 90f3238301c85ffad459cb871d70ebea569ecbb3
Author: anselm@garbe.us <unknown>
Date:   Sat, 23 Jun 2012 09:06:00 +0200

reversed Andreas Amann's fullscreen fix with the approach proposed by Gary Langshaw:
- idea is not supporting movemouse/resizemouse/togglefloating for fullscreen windows
- as fullscreen windows are broken anyways, they should only be adjusted by their own means
Diffstat:
Mdwm.c | 21++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/dwm.c b/dwm.c
@@ -575,8 +575,9 @@ configurenotify(XEvent *e) {
     XConfigureEvent *ev = &e->xconfigure;
     Bool dirty;
 
+    // TODO: updategeom handling sucks, needs to be simplified
     if(ev->window == root) {
-        dirty = (sw != ev->width);
+        dirty = (sw != ev->width || sh != ev->height);
         sw = ev->width;
         sh = ev->height;
         if(updategeom() || dirty) {
@@ -1235,6 +1236,8 @@ movemouse(const Arg *arg) {
 
     if(!(c = selmon->sel))
         return;
+    if(c->isfullscreen) /* no support moving fullscreen windows by mouse */
+        return;
     restack(selmon);
     ocx = c->x;
     ocy = c->y;
@@ -1268,11 +1271,8 @@ movemouse(const Arg *arg) {
                 && (abs(nx - c->x) > snap || abs(ny - c->y) > snap))
                     togglefloating(NULL);
             }
-            if(!selmon->lt[selmon->sellt]->arrange || c->isfloating) {
-                if(c->isfullscreen)
-                    setfullscreen(c, False);
+            if(!selmon->lt[selmon->sellt]->arrange || c->isfloating)
                 resize(c, nx, ny, c->w, c->h, True);
-            }
             break;
         }
     } while(ev.type != ButtonRelease);
@@ -1382,6 +1382,8 @@ resizemouse(const Arg *arg) {
 
     if(!(c = selmon->sel))
         return;
+    if(c->isfullscreen) /* no support resizing fullscreen windows by mouse */
+        return;
     restack(selmon);
     ocx = c->x;
     ocy = c->y;
@@ -1407,11 +1409,8 @@ resizemouse(const Arg *arg) {
                 && (abs(nw - c->w) > snap || abs(nh - c->h) > snap))
                     togglefloating(NULL);
             }
-            if(!selmon->lt[selmon->sellt]->arrange || c->isfloating) {
-                if(c->isfullscreen)
-                    setfullscreen(c, False);
+            if(!selmon->lt[selmon->sellt]->arrange || c->isfloating)
                 resize(c, c->x, c->y, nw, nh, True);
-            }
             break;
         }
     } while(ev.type != ButtonRelease);
@@ -1759,12 +1758,12 @@ void
 togglefloating(const Arg *arg) {
     if(!selmon->sel)
         return;
+    if(selmon->sel->isfullscreen) /* no support for fullscreen windows */
+        return;
     selmon->sel->isfloating = !selmon->sel->isfloating || selmon->sel->isfixed;
     if(selmon->sel->isfloating)
         resize(selmon->sel, selmon->sel->x, selmon->sel->y,
                selmon->sel->w, selmon->sel->h, False);
-    else if(selmon->sel->isfullscreen)
-        setfullscreen(selmon->sel, False);
     arrange(selmon);
 }