Do not handle bar clicks
This commit is contained in:
parent
1cdf2bc180
commit
18b5b78d73
|
@ -106,15 +106,11 @@ static Key keys[] = {
|
|||
};
|
||||
|
||||
/* button definitions */
|
||||
/* click can be ClkTagBar, ClkLtSymbol, ClkClientWin, or ClkRootWin */
|
||||
/* click can be ClkClientWin, or ClkRootWin */
|
||||
|
||||
static Button buttons[] = {
|
||||
/* click event mask button function argument */
|
||||
{ ClkClientWin, MODKEY, Button1, movemouse, {0} },
|
||||
{ ClkClientWin, MODKEY, Button2, togglefloating, {0} },
|
||||
{ ClkClientWin, MODKEY, Button3, resizemouse, {0} },
|
||||
{ ClkTagBar, 0, Button1, view, {0} },
|
||||
{ ClkTagBar, 0, Button3, toggleview, {0} },
|
||||
{ ClkTagBar, MODKEY, Button1, tag, {0} },
|
||||
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },
|
||||
};
|
||||
|
|
|
@ -74,7 +74,7 @@
|
|||
|
||||
enum { CurNormal, CurResize, CurMove, CurLast }; /* cursor */
|
||||
enum { SchemeNorm, SchemeSel }; /* color schemes */
|
||||
enum { ClkTagBar, ClkLtSymbol, ClkClientWin, ClkRootWin, ClkLast }; /* clicks */
|
||||
enum { ClkClientWin, ClkRootWin, ClkLast }; /* clicks */
|
||||
|
||||
typedef struct Monitor Monitor;
|
||||
typedef struct Client Client;
|
||||
|
|
|
@ -4,8 +4,7 @@
|
|||
void
|
||||
on_button_press(XEvent *e)
|
||||
{
|
||||
unsigned int i, x, click, occ = 0;
|
||||
Arg arg = {0};
|
||||
unsigned int i, click;
|
||||
Client *c;
|
||||
Monitor *m;
|
||||
XButtonPressedEvent *ev = &e->xbutton;
|
||||
|
@ -18,32 +17,23 @@ on_button_press(XEvent *e)
|
|||
selmon = m;
|
||||
focus(NULL);
|
||||
}
|
||||
if (ev->window == selmon->barwin) {
|
||||
i = x = 0;
|
||||
for (c = m->clients; c; c = c->next)
|
||||
occ |= c->tags == 255 ? 0 : c->tags;
|
||||
do {
|
||||
/* do not reserve space for vacant tags */
|
||||
if (!(occ & 1 << i || m->tagset[m->seltags] & 1 << i || tags_get(i)->has_custom_name))
|
||||
continue;
|
||||
x += TEXTW(tags_get(i)->name.cstr);
|
||||
} while (ev->x >= x && ++i < TAGS_COUNT);
|
||||
if (i < TAGS_COUNT) {
|
||||
click = ClkTagBar;
|
||||
arg.ui = 1 << i;
|
||||
} else if (ev->x < x + blw) {
|
||||
click = ClkLtSymbol;
|
||||
}
|
||||
} else if ((c = wintoclient(ev->window))) {
|
||||
if ((c = wintoclient(ev->window))) {
|
||||
if (settings_get_focus_on_wheel() || (ev->button != Button4 && ev->button != Button5))
|
||||
focus(c);
|
||||
XAllowEvents(dpy, ReplayPointer, CurrentTime);
|
||||
click = ClkClientWin;
|
||||
}
|
||||
for (i = 0; i < LENGTH(buttons); i++)
|
||||
if (click == buttons[i].click && buttons[i].func && buttons[i].button == ev->button
|
||||
&& CLEANMASK(buttons[i].mask) == CLEANMASK(ev->state))
|
||||
buttons[i].func(click == ClkTagBar && buttons[i].arg.i == 0 ? &arg : &buttons[i].arg);
|
||||
if (
|
||||
click == buttons[i].click
|
||||
&&
|
||||
buttons[i].func
|
||||
&&
|
||||
buttons[i].button == ev->button
|
||||
&&
|
||||
CLEANMASK(buttons[i].mask) == CLEANMASK(ev->state)
|
||||
)
|
||||
buttons[i].func(&buttons[i].arg);
|
||||
}
|
||||
|
||||
void
|
||||
|
|
Loading…
Reference in New Issue