The focus-following-the-pointer code and the pointer-following-the-focus
code sometimes negatively interact, causing dwm to keep cycling through
the clients of a tag. The behavior is not obviously reproduceable and
appears to be a bug in a different part of dwm. For the time being,
stop the focus from following the pointer.
static void drawbars(void);
static void drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]);
static void drawtext(const char *text, unsigned long col[ColLast], Bool invert);
static void drawbars(void);
static void drawsquare(Bool filled, Bool empty, Bool invert, unsigned long col[ColLast]);
static void drawtext(const char *text, unsigned long col[ColLast], Bool invert);
static void enternotify(XEvent *e);
static void enternotify(XEvent *e);
static void expose(XEvent *e);
static void focus(Client *c);
static void focusin(XEvent *e);
static void expose(XEvent *e);
static void focus(Client *c);
static void focusin(XEvent *e);
static void mappingnotify(XEvent *e);
static void maprequest(XEvent *e);
static void monocle(Monitor *m);
static void mappingnotify(XEvent *e);
static void maprequest(XEvent *e);
static void monocle(Monitor *m);
static void motionnotify(XEvent *e);
static void motionnotify(XEvent *e);
static void movemouse(const Arg *arg);
static Client *nexttiled(Client *c);
static void pop(Client *);
static void movemouse(const Arg *arg);
static Client *nexttiled(Client *c);
static void pop(Client *);
[ConfigureRequest] = configurerequest,
[ConfigureNotify] = configurenotify,
[DestroyNotify] = destroynotify,
[ConfigureRequest] = configurerequest,
[ConfigureNotify] = configurenotify,
[DestroyNotify] = destroynotify,
[EnterNotify] = enternotify,
[EnterNotify] = enternotify,
+#else
+ [EnterNotify] = NULL,
+#endif /* M10K */
[Expose] = expose,
[FocusIn] = focusin,
[KeyPress] = keypress,
[MappingNotify] = mappingnotify,
[MapRequest] = maprequest,
[Expose] = expose,
[FocusIn] = focusin,
[KeyPress] = keypress,
[MappingNotify] = mappingnotify,
[MapRequest] = maprequest,
[MotionNotify] = motionnotify,
[MotionNotify] = motionnotify,
+#else
+ [MotionNotify] = NULL,
+#endif /* ! M10K */
[PropertyNotify] = propertynotify,
[ResizeRequest] = resizerequest,
[UnmapNotify] = unmapnotify
[PropertyNotify] = propertynotify,
[ResizeRequest] = resizerequest,
[UnmapNotify] = unmapnotify
pango_layout_set_attributes(dc.font.layout, NULL);
}
pango_layout_set_attributes(dc.font.layout, NULL);
}
void
enternotify(XEvent *e) {
Client *c;
void
enternotify(XEvent *e) {
Client *c;
resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, False);
}
resize(c, m->wx, m->wy, m->ww - 2 * c->bw, m->wh - 2 * c->bw, False);
}
void
motionnotify(XEvent *e) {
static Monitor *mon = NULL;
void
motionnotify(XEvent *e) {
static Monitor *mon = NULL;
void
movemouse(const Arg *arg) {
void
movemouse(const Arg *arg) {