[hackers] [dwm] applied Markus' tagset purge of alternative view on _NET_ACTIVE_WINDOW event || Anselm R Garbe

From: <git_AT_suckless.org>
Date: Mon, 5 Dec 2016 10:18:19 +0100 (CET)

commit bb3bd6fec37174e8d4bb9457ca815c00609e5157
Author: Anselm R Garbe <garbeam_AT_gmail.com>
AuthorDate: Mon Dec 5 10:16:46 2016 +0100
Commit: Anselm R Garbe <garbeam_AT_gmail.com>
CommitDate: Mon Dec 5 10:16:46 2016 +0100

    applied Markus' tagset purge of alternative view on _NET_ACTIVE_WINDOW event

diff --git a/dwm.c b/dwm.c
index ca6f679..d27cb67 100644
--- a/dwm.c
+++ b/dwm.c
_AT_@ -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);
_AT_@ -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);
_AT_@ -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;
_AT_@ -534,11 +521,8 @@ clientmessage(XEvent *e)
                         setfullscreen(c, (cme->data.l[0] == 1 /* _NET_WM_STATE_ADD */
                                       || (cme->data.l[0] == 2 /* _NET_WM_STATE_TOGGLE */ && !c->isfullscreen)));
         } 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);
         }
 }
 
_AT_@ -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);
_AT_@ -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 & ~XUrgencyHint);
+ XSetWMHints(dpy, c->win, wmh);
+ XFree(wmh);
+}
+
 void
 showhide(Client *c)
 {
Received on Mon Dec 05 2016 - 10:18:19 CET

This archive was generated by hypermail 2.3.0 : Mon Dec 05 2016 - 10:24:26 CET