all repos — dwm @ fc109ea8f72e662ed58ef45329b6ca9e91d61d3b

my dwm build

fixed misappearance of iconified windows on SIGKILL
Anselm R. Garbe garbeam@gmail.com
Sun, 19 Aug 2007 18:39:54 +0200
commit

fc109ea8f72e662ed58ef45329b6ca9e91d61d3b

parent

b975c4728046052a32626378df193217a96fbefc

2 files changed, 29 insertions(+), 4 deletions(-)

jump to
M main.cmain.c

@@ -111,6 +111,24 @@ }

dc.font.height = dc.font.ascent + dc.font.descent; } +static long +getstate(Window w) { + int format, status; + long result = -1; + unsigned char *p = NULL; + unsigned long n, extra; + Atom real; + + status = XGetWindowProperty(dpy, w, wmatom[WMState], 0L, 2L, False, wmatom[WMState], + &real, &format, &n, &extra, (unsigned char **)&p); + if(status != Success) + return -1; + if(n != 0) + result = *p; + XFree(p); + return result; +} + static void scan(void) { unsigned int i, num;

@@ -123,7 +141,14 @@ for(i = 0; i < num; i++) {

if(!XGetWindowAttributes(dpy, wins[i], &wa) || wa.override_redirect || XGetTransientForHint(dpy, wins[i], &d1)) continue; - if(wa.map_state == IsViewable) + if(wa.map_state == IsViewable || getstate(wins[i]) == IconicState) + manage(wins[i], &wa); + } + for(i = 0; i < num; i++) { /* now the transients */ + if(!XGetWindowAttributes(dpy, wins[i], &wa)) + continue; + if(XGetTransientForHint(dpy, wins[i], &d1) + && (wa.map_state == IsViewable || getstate(wins[i]) == IconicState)) manage(wins[i], &wa); } }
M screen.cscreen.c

@@ -60,7 +60,7 @@

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 @@ if(gettextprop(root, dwmprops, prop, sizeof prop)) {

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'; } } }