it's debug season for upcoming dwm 5.8, so only use this if you really want to run...
authorAnselm R Garbe <anselm@garbe.us>
Wed, 31 Mar 2010 22:24:22 +0000 (23:24 +0100)
committerAnselm R Garbe <anselm@garbe.us>
Wed, 31 Mar 2010 22:24:22 +0000 (23:24 +0100)
BUGS
config.mk
dwm.c

diff --git a/BUGS b/BUGS
index 181ae15..de83186 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -44,3 +44,16 @@ Donald Allen reported this:
 starting emacs from dmenu in archlinux results in missing configure of emacs, but mod1-space or mod1-shift-space fix this problem. this problem is new and did not happen in 1.6 xorg servers
 
 Starting emacs from xterm doesnt show this problem, he uses tag 8 for emacs
+
+---
+
+2009/12/7 Alexandr Krylovskiy <wing_AT_tversu.ru>: 
+>  Fullscreen mode with flash applications (youtube, for example) doesn't 
+> work properly neither in tiled nor in floating mode. 
+>  Fullscreen window closes immediately after opening. 
+
+This is a known bug (for some curiosity I received the same report via 
+privmail from 2 other people within one week, really strange). 
+The quick fix is commenting out the code in lines 817/818 in hg tip 
+dwm. I cannot confirm this has no side effects (I think it does) and I 
+will address this issue shortly with a real fix. 
index f17664f..303984d 100644 (file)
--- a/config.mk
+++ b/config.mk
@@ -20,10 +20,10 @@ LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${XINERAMALIBS}
 
 # flags
 CPPFLAGS = -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
-#CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS}
-CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
-#LDFLAGS = -g ${LIBS}
-LDFLAGS = -s ${LIBS}
+CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS}
+#CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
+LDFLAGS = -g ${LIBS}
+#LDFLAGS = -s ${LIBS}
 
 # Solaris
 #CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
diff --git a/dwm.c b/dwm.c
index 32755cb..88d80b2 100644 (file)
--- a/dwm.c
+++ b/dwm.c
@@ -41,6 +41,7 @@
 #endif /* XINERAMA */
 
 /* macros */
+#define D                       if(1)
 #define BUTTONMASK              (ButtonPressMask|ButtonReleaseMask)
 #define CLEANMASK(mask)         (mask & ~(numlockmask|LockMask))
 #define INRECT(X,Y,RX,RY,RW,RH) ((X) >= (RX) && (X) < (RX) + (RW) && (Y) >= (RY) && (Y) < (RY) + (RH))
@@ -814,8 +815,8 @@ void
 focus(Client *c) {
        if(!c || !ISVISIBLE(c))
                for(c = selmon->stack; c && !ISVISIBLE(c); c = c->snext);
-       if(selmon->sel)
-               unfocus(selmon->sel);
+//     if(selmon->sel)
+//             unfocus(selmon->sel);
        if(c) {
                if(c->mon != selmon)
                        selmon = c->mon;
@@ -1388,12 +1389,27 @@ restack(Monitor *m) {
 void
 run(void) {
        XEvent ev;
-
+       static const char *evname[LASTEvent] = {
+               [ButtonPress] = "buttonpress",
+               [ConfigureRequest] = "configurerequest",
+               [ConfigureNotify] = "configurenotify",
+               [DestroyNotify] = "destroynotify",
+               [EnterNotify] = "enternotify",
+               [Expose] = "expose",
+               [FocusIn] = "focusin",
+               [KeyPress] = "keypress",
+               [MappingNotify] = "mappingnotify",
+               [MapRequest] = "maprequest",
+               [PropertyNotify] = "propertynotify",
+               [UnmapNotify] = "unmapnotify"
+       };
        /* main event loop */
        XSync(dpy, False);
-       while(running && !XNextEvent(dpy, &ev))
+       while(running && !XNextEvent(dpy, &ev)) {
+               D fprintf(stderr, "run event %s\n", evname[ev.type]);
                if(handler[ev.type])
                        handler[ev.type](&ev); /* call handler */
+       }
 }
 
 void