all repos — openbox @ f6b61bb60e8f3a090ad9bbbdf88470eb5c7c3158

openbox fork - make it a bit more like ryudo

disallow drag events on title buttons.
dont redraw title button when the wheel buttons are used on them.
Dana Jansens danakj@orodu.net
commit

f6b61bb60e8f3a090ad9bbbdf88470eb5c7c3158

parent

0b5f6589ba42869d4d1bdac61b3128dbc762424d

2 files changed, 40 insertions(+), 26 deletions(-)

jump to
M openbox/event.copenbox/event.c

@@ -538,30 +538,34 @@

switch (e->type) { case ButtonPress: case ButtonRelease: - switch (frame_context(client, e->xbutton.window)) { - case Context_Maximize: - client->frame->max_press = (e->type == ButtonPress); - framerender_frame(client->frame); - break; - case Context_Close: - client->frame->close_press = (e->type == ButtonPress); - framerender_frame(client->frame); - break; - case Context_Iconify: - client->frame->iconify_press = (e->type == ButtonPress); - framerender_frame(client->frame); - break; - case Context_AllDesktops: - client->frame->desk_press = (e->type == ButtonPress); - framerender_frame(client->frame); - break; - case Context_Shade: - client->frame->shade_press = (e->type == ButtonPress); - framerender_frame(client->frame); - break; - default: - /* nothing changes with clicks for any other contexts */ - break; + /* Wheel buttons don't draw because they are an instant click, so it + is a waste of resources to go drawing it. */ + if (!(e->xbutton.button == 4 || e->xbutton.button == 5)) { + switch (frame_context(client, e->xbutton.window)) { + case Context_Maximize: + client->frame->max_press = (e->type == ButtonPress); + framerender_frame(client->frame); + break; + case Context_Close: + client->frame->close_press = (e->type == ButtonPress); + framerender_frame(client->frame); + break; + case Context_Iconify: + client->frame->iconify_press = (e->type == ButtonPress); + framerender_frame(client->frame); + break; + case Context_AllDesktops: + client->frame->desk_press = (e->type == ButtonPress); + framerender_frame(client->frame); + break; + case Context_Shade: + client->frame->shade_press = (e->type == ButtonPress); + framerender_frame(client->frame); + break; + default: + /* nothing changes with clicks for any other contexts */ + break; + } } break; case FocusIn:
M plugins/mouse/mouse.cplugins/mouse/mouse.c

@@ -288,6 +288,18 @@ if (ABS(e->data.x.e->xmotion.x_root - px) >= threshold ||

ABS(e->data.x.e->xmotion.y_root - py) >= threshold) { 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) corner = prop_atoms.net_wm_moveresize_size_bottomright; else

@@ -306,8 +318,6 @@ e->data.x.client->frame->size.right,

e->data.x.client->area.height + e->data.x.client->frame->size.top + 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, e->data.x.client, state, button, e->data.x.e->xmotion.x_root,