all repos — openbox @ e5f27bd25ecc3fbabbba8766168211d71d0d0397

openbox fork - make it a bit more like ryudo

grab the pointer befoer shading a window to prevent focus moving in sloppy focus
Dana Jansens danakj@orodu.net
commit

e5f27bd25ecc3fbabbba8766168211d71d0d0397

parent

3942d579d8423e994e29f6a5e80ed8021459d978

1 files changed, 20 insertions(+), 6 deletions(-)

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

@@ -866,9 +866,11 @@

void action_unshaderaise(union ActionData *data) { if (data->client.any.c) { - if (data->client.any.c->shaded) + if (data->client.any.c->shaded) { + grab_pointer(TRUE, OB_CURSOR_NONE); client_shade(data->client.any.c, FALSE); - else + grab_pointer(FALSE, OB_CURSOR_NONE); + } else stacking_raise(CLIENT_AS_WINDOW(data->client.any.c)); } }

@@ -878,8 +880,11 @@ {

if (data->client.any.c) { if (data->client.any.c->shaded) stacking_lower(CLIENT_AS_WINDOW(data->client.any.c)); - else + else { + grab_pointer(TRUE, OB_CURSOR_NONE); client_shade(data->client.any.c, TRUE); + grab_pointer(FALSE, OB_CURSOR_NONE); + } } }

@@ -903,20 +908,29 @@ }

void action_shade(union ActionData *data) { - if (data->client.any.c) + if (data->client.any.c) { + grab_pointer(TRUE, OB_CURSOR_NONE); client_shade(data->client.any.c, TRUE); + grab_pointer(FALSE, OB_CURSOR_NONE); + } } void action_unshade(union ActionData *data) { - if (data->client.any.c) + if (data->client.any.c) { + grab_pointer(TRUE, OB_CURSOR_NONE); client_shade(data->client.any.c, FALSE); + grab_pointer(FALSE, OB_CURSOR_NONE); + } } void action_toggle_shade(union ActionData *data) { - if (data->client.any.c) + if (data->client.any.c) { + grab_pointer(TRUE, OB_CURSOR_NONE); client_shade(data->client.any.c, !data->client.any.c->shaded); + grab_pointer(FALSE, OB_CURSOR_NONE); + } } void action_toggle_omnipresent(union ActionData *data)