tapplied Markus' tagset purge of alternative view on _NET_ACTIVE_WINDOW event -… | |
git clone git://src.adamsgaard.dk/dwm | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit bb3bd6fec37174e8d4bb9457ca815c00609e5157 | |
parent e63bf229485a576d68975dd4eb00c210394133ae | |
Author: Anselm R Garbe <[email protected]> | |
Date: Mon, 5 Dec 2016 10:16:46 +0100 | |
applied Markus' tagset purge of alternative view on _NET_ACTIVE_WINDOW event | |
Diffstat: | |
M dwm.c | 38 +++++++++++++++--------------… | |
1 file changed, 18 insertions(+), 20 deletions(-) | |
--- | |
diff --git a/dwm.c b/dwm.c | |
t@@ -153,7 +153,6 @@ static void buttonpress(XEvent *e); | |
static void checkotherwm(void); | |
static void cleanup(void); | |
static void cleanupmon(Monitor *mon); | |
-static void clearurgent(Client *c); | |
static void clientmessage(XEvent *e); | |
static void configure(Client *c); | |
static void configurenotify(XEvent *e); | |
t@@ -204,6 +203,7 @@ static void setfullscreen(Client *c, int fullscreen); | |
static void setlayout(const Arg *arg); | |
static void setmfact(const Arg *arg); | |
static void setup(void); | |
+static void seturgent(Client *c, int urg); | |
static void showhide(Client *c); | |
static void sigchld(int unused); | |
static void spawn(const Arg *arg); | |
t@@ -509,19 +509,6 @@ cleanupmon(Monitor *mon) | |
} | |
void | |
-clearurgent(Client *c) | |
-{ | |
- XWMHints *wmh; | |
- | |
- c->isurgent = 0; | |
- if (!(wmh = XGetWMHints(dpy, c->win))) | |
- return; | |
- wmh->flags &= ~XUrgencyHint; | |
- XSetWMHints(dpy, c->win, wmh); | |
- XFree(wmh); | |
-} | |
- | |
-void | |
clientmessage(XEvent *e) | |
{ | |
XClientMessageEvent *cme = &e->xclient; | |
t@@ -534,11 +521,8 @@ clientmessage(XEvent *e) | |
setfullscreen(c, (cme->data.l[0] == 1 /* _NET_WM_STATE… | |
|| (cme->data.l[0] == 2 /* _NET_WM_STATE… | |
} else if (cme->message_type == netatom[NetActiveWindow]) { | |
- if (!ISVISIBLE(c)) { | |
- c->mon->seltags ^= 1; | |
- c->mon->tagset[c->mon->seltags] = c->tags; | |
- } | |
- pop(c); | |
+ if (c != selmon->sel && !c->isurgent) | |
+ seturgent(c, 1); | |
} | |
} | |
t@@ -806,7 +790,7 @@ focus(Client *c) | |
if (c->mon != selmon) | |
selmon = c->mon; | |
if (c->isurgent) | |
- clearurgent(c); | |
+ seturgent(c, 0); | |
detachstack(c); | |
attachstack(c); | |
grabbuttons(c, 1); | |
t@@ -1616,6 +1600,20 @@ setup(void) | |
focus(NULL); | |
} | |
+ | |
+void | |
+seturgent(Client *c, int urg) | |
+{ | |
+ XWMHints *wmh; | |
+ | |
+ c->isurgent = urg; | |
+ if (!(wmh = XGetWMHints(dpy, c->win))) | |
+ return; | |
+ wmh->flags = urg ? (wmh->flags | XUrgencyHint) : (wmh->flags & ~XUrgen… | |
+ XSetWMHints(dpy, c->win, wmh); | |
+ XFree(wmh); | |
+} | |
+ | |
void | |
showhide(Client *c) | |
{ |