Clear urgency hint on sel == c

- Run "tabbed xterm -into".
 - Open a new tab using Ctrl+Shift+Enter, switch to it using Ctrl+Tab.
 - Run "sleep 2; printf '\a'".
 - Quickly change back to the first tab (c = 0) and wait for the second
   one (c = 1) to get the urgency hint.
 - Close the first tab using Ctrl+Q or Ctrl+D. This sets sel = 0 and c =
   0, so focus() won't touch the urgency hint.
 - Now, the urgency hint on the second tab has not been cleared. Open a
   new tab to verify it.

Signed-off-by: Christoph Lohmann <20h@r-36.net>
This commit is contained in:
Peter Hofmann 2014-06-21 07:46:26 +02:00 committed by Christoph Lohmann
parent 9d1d6d9409
commit b4fed5a100

View file

@ -452,16 +452,16 @@ focus(int c) {
sendxembed(c, XEMBED_WINDOW_ACTIVATE, 0, 0, 0);
xsettitle(win, clients[c]->name);
/* If sel is already c, change nothing. */
if(sel != c) {
lastsel = sel;
sel = c;
if(clients[c]->urgent && (wmh = XGetWMHints(dpy, clients[c]->win))) {
wmh->flags &= ~XUrgencyHint;
XSetWMHints(dpy, clients[c]->win, wmh);
clients[c]->urgent = False;
XFree(wmh);
}
}
if(clients[c]->urgent && (wmh = XGetWMHints(dpy, clients[c]->win))) {
wmh->flags &= ~XUrgencyHint;
XSetWMHints(dpy, clients[c]->win, wmh);
clients[c]->urgent = False;
XFree(wmh);
}
drawbar();