disallow drag events on title buttons.
dont redraw title button when the wheel buttons are used on them.
This commit is contained in:
parent
0b5f6589ba
commit
f6b61bb60e
2 changed files with 40 additions and 26 deletions
|
@ -538,30 +538,34 @@ static void event_handle_client(Client *client, XEvent *e)
|
||||||
switch (e->type) {
|
switch (e->type) {
|
||||||
case ButtonPress:
|
case ButtonPress:
|
||||||
case ButtonRelease:
|
case ButtonRelease:
|
||||||
switch (frame_context(client, e->xbutton.window)) {
|
/* Wheel buttons don't draw because they are an instant click, so it
|
||||||
case Context_Maximize:
|
is a waste of resources to go drawing it. */
|
||||||
client->frame->max_press = (e->type == ButtonPress);
|
if (!(e->xbutton.button == 4 || e->xbutton.button == 5)) {
|
||||||
framerender_frame(client->frame);
|
switch (frame_context(client, e->xbutton.window)) {
|
||||||
break;
|
case Context_Maximize:
|
||||||
case Context_Close:
|
client->frame->max_press = (e->type == ButtonPress);
|
||||||
client->frame->close_press = (e->type == ButtonPress);
|
framerender_frame(client->frame);
|
||||||
framerender_frame(client->frame);
|
break;
|
||||||
break;
|
case Context_Close:
|
||||||
case Context_Iconify:
|
client->frame->close_press = (e->type == ButtonPress);
|
||||||
client->frame->iconify_press = (e->type == ButtonPress);
|
framerender_frame(client->frame);
|
||||||
framerender_frame(client->frame);
|
break;
|
||||||
break;
|
case Context_Iconify:
|
||||||
case Context_AllDesktops:
|
client->frame->iconify_press = (e->type == ButtonPress);
|
||||||
client->frame->desk_press = (e->type == ButtonPress);
|
framerender_frame(client->frame);
|
||||||
framerender_frame(client->frame);
|
break;
|
||||||
break;
|
case Context_AllDesktops:
|
||||||
case Context_Shade:
|
client->frame->desk_press = (e->type == ButtonPress);
|
||||||
client->frame->shade_press = (e->type == ButtonPress);
|
framerender_frame(client->frame);
|
||||||
framerender_frame(client->frame);
|
break;
|
||||||
break;
|
case Context_Shade:
|
||||||
default:
|
client->frame->shade_press = (e->type == ButtonPress);
|
||||||
/* nothing changes with clicks for any other contexts */
|
framerender_frame(client->frame);
|
||||||
break;
|
break;
|
||||||
|
default:
|
||||||
|
/* nothing changes with clicks for any other contexts */
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case FocusIn:
|
case FocusIn:
|
||||||
|
|
|
@ -288,6 +288,18 @@ static void event(ObEvent *e, void *foo)
|
||||||
ABS(e->data.x.e->xmotion.y_root - py) >= threshold) {
|
ABS(e->data.x.e->xmotion.y_root - py) >= threshold) {
|
||||||
guint32 corner;
|
guint32 corner;
|
||||||
|
|
||||||
|
context = frame_context(e->data.x.client,
|
||||||
|
e->data.x.e->xmotion.window);
|
||||||
|
|
||||||
|
/* You can't drag on buttons */
|
||||||
|
if (context == Context_Maximize ||
|
||||||
|
context == Context_AllDesktops ||
|
||||||
|
context == Context_Shade ||
|
||||||
|
context == Context_Iconify ||
|
||||||
|
context == Context_Icon ||
|
||||||
|
context == Context_Close)
|
||||||
|
break;
|
||||||
|
|
||||||
if (!e->data.x.client)
|
if (!e->data.x.client)
|
||||||
corner = prop_atoms.net_wm_moveresize_size_bottomright;
|
corner = prop_atoms.net_wm_moveresize_size_bottomright;
|
||||||
else
|
else
|
||||||
|
@ -306,8 +318,6 @@ static void event(ObEvent *e, void *foo)
|
||||||
e->data.x.client->area.height +
|
e->data.x.client->area.height +
|
||||||
e->data.x.client->frame->size.top +
|
e->data.x.client->frame->size.top +
|
||||||
e->data.x.client->frame->size.bottom);
|
e->data.x.client->frame->size.bottom);
|
||||||
context = frame_context(e->data.x.client,
|
|
||||||
e->data.x.e->xmotion.window);
|
|
||||||
fire_motion(MouseAction_Motion, context,
|
fire_motion(MouseAction_Motion, context,
|
||||||
e->data.x.client, state, button,
|
e->data.x.client, state, button,
|
||||||
e->data.x.e->xmotion.x_root,
|
e->data.x.e->xmotion.x_root,
|
||||||
|
|
Loading…
Reference in a new issue