it's debug season for upcoming dwm 5.8, so only use this if you really want to run experimental code or debug code d6bdd03d
Anselm R Garbe · 2010-03-31 23:24 3 file(s) · +37 −8
BUGS +13 −0
44 44
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
45 45
46 46
Starting emacs from xterm doesnt show this problem, he uses tag 8 for emacs
47 +
48 +
---
49 +
50 +
2009/12/7 Alexandr Krylovskiy <wing_AT_tversu.ru>: 
51 +
>  Fullscreen mode with flash applications (youtube, for example) doesn't 
52 +
> work properly neither in tiled nor in floating mode. 
53 +
>  Fullscreen window closes immediately after opening. 
54 +
55 +
This is a known bug (for some curiosity I received the same report via 
56 +
privmail from 2 other people within one week, really strange). 
57 +
The quick fix is commenting out the code in lines 817/818 in hg tip 
58 +
dwm. I cannot confirm this has no side effects (I think it does) and I 
59 +
will address this issue shortly with a real fix. 
config.mk +4 −4
20 20
21 21
# flags
22 22
CPPFLAGS = -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
23 -
#CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS}
24 -
CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
25 -
#LDFLAGS = -g ${LIBS}
26 -
LDFLAGS = -s ${LIBS}
23 +
CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS}
24 +
#CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
25 +
LDFLAGS = -g ${LIBS}
26 +
#LDFLAGS = -s ${LIBS}
27 27
28 28
# Solaris
29 29
#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
dwm.c +20 −4
41 41
#endif /* XINERAMA */
42 42
43 43
/* macros */
44 +
#define D                       if(1)
44 45
#define BUTTONMASK              (ButtonPressMask|ButtonReleaseMask)
45 46
#define CLEANMASK(mask)         (mask & ~(numlockmask|LockMask))
46 47
#define INRECT(X,Y,RX,RY,RW,RH) ((X) >= (RX) && (X) < (RX) + (RW) && (Y) >= (RY) && (Y) < (RY) + (RH))
814 815
focus(Client *c) {
815 816
	if(!c || !ISVISIBLE(c))
816 817
		for(c = selmon->stack; c && !ISVISIBLE(c); c = c->snext);
817 -
	if(selmon->sel)
818 -
		unfocus(selmon->sel);
818 +
//	if(selmon->sel)
819 +
//		unfocus(selmon->sel);
819 820
	if(c) {
820 821
		if(c->mon != selmon)
821 822
			selmon = c->mon;
1388 1389
void
1389 1390
run(void) {
1390 1391
	XEvent ev;
1391 -
1392 +
	static const char *evname[LASTEvent] = {
1393 +
		[ButtonPress] = "buttonpress",
1394 +
		[ConfigureRequest] = "configurerequest",
1395 +
		[ConfigureNotify] = "configurenotify",
1396 +
		[DestroyNotify] = "destroynotify",
1397 +
		[EnterNotify] = "enternotify",
1398 +
		[Expose] = "expose",
1399 +
		[FocusIn] = "focusin",
1400 +
		[KeyPress] = "keypress",
1401 +
		[MappingNotify] = "mappingnotify",
1402 +
		[MapRequest] = "maprequest",
1403 +
		[PropertyNotify] = "propertynotify",
1404 +
		[UnmapNotify] = "unmapnotify"
1405 +
	};
1392 1406
	/* main event loop */
1393 1407
	XSync(dpy, False);
1394 -
	while(running && !XNextEvent(dpy, &ev))
1408 +
	while(running && !XNextEvent(dpy, &ev)) {
1409 +
		D fprintf(stderr, "run event %s\n", evname[ev.type]);
1395 1410
		if(handler[ev.type])
1396 1411
			handler[ev.type](&ev); /* call handler */
1412 +
	}
1397 1413
}
1398 1414
1399 1415
void