dwm does not always leave the fullscreen mode correctly. 

For example, if you use the mouse to resize a fullscreen client, the boarder
does not get painted, which indicates that internally the isfullscreen flag
is still set.  A similar effect happens if togglefloat (Alt-Shift-Space) is
applied to a fullscreen client. 


The attached patch fixes this. 

Andreas

# HG changeset patch
# Parent 825580c0682efa35ff2e2cd003e552c4af75982b

diff --git a/dwm.c b/dwm.c
--- a/dwm.c
+++ b/dwm.c
@@ -1268,6 +1268,8 @@
                                        togglefloating(NULL);
                        }
                        if(!selmon->lt[selmon->sellt]->arrange || c->isfloating)
+                               if (c-> isfullscreen)
+                                       setfullscreen(c,False);
                                resize(c, nx, ny, c->w, c->h, True);
                        break;
                }
@@ -1403,8 +1405,11 @@
                                && (abs(nw - c->w) > snap || abs(nh - c->h) > 
snap))
                                        togglefloating(NULL);
                        }
-                       if(!selmon->lt[selmon->sellt]->arrange || c->isfloating)
+                       if(!selmon->lt[selmon->sellt]->arrange || 
c->isfloating) {
+                               if (c-> isfullscreen)
+                                       setfullscreen(c,False);
                                resize(c, c->x, c->y, nw, nh, True);
+                       }
                        break;
                }
        } while(ev.type != ButtonRelease);
@@ -1756,6 +1761,10 @@
        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);
 }
 

Reply via email to