ewmh: Regulate net_current_desktop in client message event
This commit is contained in:
parent
f8d1049240
commit
e33c20f1bb
12
src/event.c
12
src/event.c
@ -109,6 +109,7 @@ void
|
||||
clientmessageevent(XClientMessageEvent *ev)
|
||||
{
|
||||
Client *c;
|
||||
char tmp[3];
|
||||
int i, mess_t = 0;
|
||||
|
||||
if(ev->format != 32)
|
||||
@ -120,8 +121,13 @@ clientmessageevent(XClientMessageEvent *ev)
|
||||
if(ev->window == ROOT)
|
||||
{
|
||||
/* Manage _NET_CURRENT_DESKTOP */
|
||||
if(mess_t == net_current_desktop)
|
||||
ewmh_get_current_desktop();
|
||||
if(mess_t == net_current_desktop
|
||||
&& ev->data.l[0] >= 1
|
||||
&& ev->data.l[0] < conf.ntag[selscreen])
|
||||
{
|
||||
ITOA(tmp, (int)(ev->data.l[0] + 1));
|
||||
uicb_tag(tmp);
|
||||
}
|
||||
/* Manage _NET_ACTIVE_WINDOW */
|
||||
if(mess_t == net_active_window)
|
||||
if((c = client_gb_win(ev->data.l[0])))
|
||||
@ -373,7 +379,7 @@ propertynotify(XPropertyEvent *ev)
|
||||
break;
|
||||
}
|
||||
if(ev->atom == XA_WM_NAME
|
||||
|| ev->atom == ATOM("_NET_WM_NAME"))
|
||||
|| ev->atom == net_atom[net_wm_name])
|
||||
client_get_name(c);
|
||||
}
|
||||
|
||||
|
||||
@ -89,11 +89,14 @@ ewmh_get_number_of_desktop(void)
|
||||
void
|
||||
ewmh_get_current_desktop(void)
|
||||
{
|
||||
int t;
|
||||
|
||||
screen_get_sel();
|
||||
t = seltag[selscreen] - 1;
|
||||
|
||||
/* Get current desktop (tag) */
|
||||
XChangeProperty(dpy, ROOT, net_atom[net_current_desktop], XA_CARDINAL, 32,
|
||||
PropModeReplace, (uchar*)&seltag[selscreen], 1);
|
||||
PropModeReplace, (uchar*)&t, 1);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@ -46,6 +46,7 @@ init(void)
|
||||
screen_init_geo();
|
||||
ewmh_init_hints();
|
||||
infobar_init();
|
||||
ewmh_get_current_desktop();
|
||||
grabkeys();
|
||||
|
||||
/* Warning about font */
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user