dwm

dynamic window manager
git clone git://git.suckless.org/dwm
Log | Files | Refs | README | LICENSE

commit d6bdd03d915ecb800444986503b43aa488a82e36
parent 1144e983949878ea75e5d40e93b063ff7d1e1150
Author: Anselm R Garbe <anselm@garbe.us>
Date:   Wed, 31 Mar 2010 23:24:22 +0100

it's debug season for upcoming dwm 5.8, so only use this if you really want to run experimental code or debug code
Diffstat:
MBUGS | 13+++++++++++++
Mconfig.mk | 8++++----
Mdwm.c | 24++++++++++++++++++++----
3 files changed, 37 insertions(+), 8 deletions(-)

diff --git 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. diff --git 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 @@ -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