JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
fixed misappearance of iconified windows on SIGKILL
[dwm.git] / screen.c
index 03387eb..a8b093c 100644 (file)
--- a/screen.c
+++ b/screen.c
@@ -60,7 +60,7 @@ setdwmprops(void) {
        for(i = 0; i < ntags && i < sizeof prop - 1; i++)
                prop[i] = seltags[i] ? '1' : '0';
        if(i < sizeof prop - 1)
-               prop[i++] = (char)ltidx;
+               prop[i++] = (char)ltidx + '0';
        prop[i] = '\0';
        XChangeProperty(dpy, root, dwmprops, XA_STRING, 8,
                        PropModeReplace, (unsigned char *)prop, i);
@@ -223,8 +223,8 @@ getdwmprops(void) {
                for(i = 0; i < ntags && i < sizeof prop - 1 && prop[i] != '\0'; i++)
                        seltags[i] = prop[i] == '1';
                if(i < sizeof prop - 1 && prop[i] != '\0') {
-                       if(prop[i] < nlayouts)
-                               ltidx = prop[i];
+                       if((unsigned int)(prop[i] - '0') < nlayouts)
+                               ltidx = prop[i] - '0';
                }
        }
 }
@@ -370,6 +370,32 @@ toggleview(const char *arg) {
 }
 
 void
+updatebarpos(void) {
+       XEvent ev;
+
+       wax = sx;
+       way = sy;
+       wah = sh;
+       waw = sw;
+       switch(bpos) {
+       default:
+               wah -= bh;
+               way += bh;
+               XMoveWindow(dpy, barwin, sx, sy);
+               break;
+       case BarBot:
+               wah -= bh;
+               XMoveWindow(dpy, barwin, sx, sy + wah);
+               break;
+       case BarOff:
+               XMoveWindow(dpy, barwin, sx, sy - bh);
+               break;
+       }
+       XSync(dpy, False);
+       while(XCheckMaskEvent(dpy, EnterWindowMask, &ev));
+}
+
+void
 view(const char *arg) {
        unsigned int i;