Xinqi Bao's Git
projects
/
dwm.git
/ diff
summary
|
log
|
commit
|
diff
|
tree
raw
|
patch
|
inline
| side by side (parent:
e63bf22
)
applied Markus' tagset purge of alternative view on _NET_ACTIVE_WINDOW event
author
Anselm R Garbe <
[email protected]
>
Mon, 5 Dec 2016 09:16:46 +0000
(10:16 +0100)
committer
Anselm R Garbe <
[email protected]
>
Mon, 5 Dec 2016 09:16:46 +0000
(10:16 +0100)
dwm.c
diff
|
blob
|
history
diff --git
a/dwm.c
b/dwm.c
index
ca6f679
..
d27cb67
100644
(file)
--- a/
dwm.c
+++ b/
dwm.c
@@
-153,7
+153,6
@@
static void buttonpress(XEvent *e);
static void checkotherwm(void);
static void cleanup(void);
static void cleanupmon(Monitor *mon);
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);
static void clientmessage(XEvent *e);
static void configure(Client *c);
static void configurenotify(XEvent *e);
@@
-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 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);
static void showhide(Client *c);
static void sigchld(int unused);
static void spawn(const Arg *arg);
@@
-508,19
+508,6
@@
cleanupmon(Monitor *mon)
free(mon);
}
free(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)
{
void
clientmessage(XEvent *e)
{
@@
-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]) {
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);
}
}
}
}
@@
-806,7
+790,7
@@
focus(Client *c)
if (c->mon != selmon)
selmon = c->mon;
if (c->isurgent)
if (c->mon != selmon)
selmon = c->mon;
if (c->isurgent)
-
clearurgent(c
);
+
seturgent(c, 0
);
detachstack(c);
attachstack(c);
grabbuttons(c, 1);
detachstack(c);
attachstack(c);
grabbuttons(c, 1);
@@
-1616,6
+1600,20
@@
setup(void)
focus(NULL);
}
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)
{
void
showhide(Client *c)
{