#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))
if(!mons->next)
return;
- m = dirtomon(arg->i);
+ if((m = dirtomon(arg->i)) == selmon)
+ return;
unfocus(selmon->sel);
selmon = m;
focus(NULL);
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 %ld\n", evname[ev.type], ev.xany.window);
if(handler[ev.type])
handler[ev.type](&ev); /* call handler */
+ }
}
void
setlayout(const Arg *arg) {
if(!arg || !arg->v || arg->v != selmon->lt[selmon->sellt])
selmon->sellt ^= 1;
- if(arg && arg->v) {
+ if(arg && arg->v)
selmon->lt[selmon->sellt] = (Layout *)arg->v;
- strncpy(selmon->ltsymbol, selmon->lt[selmon->sellt]->symbol, sizeof selmon->ltsymbol);
- }
+ strncpy(selmon->ltsymbol, selmon->lt[selmon->sellt]->symbol, sizeof selmon->ltsymbol);
if(selmon->sel)
arrange(selmon);
else