all repos — openbox @ d074b11bf9f40549eb9d138afe3c615b3091aff4

openbox fork - make it a bit more like ryudo

let windows that cant iconify still iconify with their parents, but not non-normal windows.
let you focus windows that wouldnt normally by clicking on their decor (if they have any)
Dana Jansens danakj@orodu.net
commit

d074b11bf9f40549eb9d138afe3c615b3091aff4

parent

f0e5332b4ae5504f167d75e853c13e6f718ce70a

3 files changed, 12 insertions(+), 5 deletions(-)

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

@@ -1199,7 +1199,9 @@

void action_activate(union ActionData *data) { if (data->client.any.c) { - if (!data->any.button || client_mouse_focusable(data->client.any.c)) { + if (!data->any.button || client_mouse_focusable(data->client.any.c) || + data->any.context != OB_FRAME_CONTEXT_CLIENT) + { /* if using focus_delay, stop the timer now so that focus doesn't go moving on us */ event_halt_focus_delay();

@@ -1217,7 +1219,9 @@

void action_focus(union ActionData *data) { if (data->client.any.c) { - if (!data->any.button || client_mouse_focusable(data->client.any.c)) { + if (!data->any.button || client_mouse_focusable(data->client.any.c) || + data->any.context != OB_FRAME_CONTEXT_CLIENT) + { /* if using focus_delay, stop the timer now so that focus doesn't go moving on us */ event_halt_focus_delay();
M openbox/client.copenbox/client.c

@@ -2814,7 +2814,9 @@ ob_debug("%sconifying window: 0x%lx\n", (iconic ? "I" : "Uni"),

self->window); if (iconic) { - if (self->functions & OB_CLIENT_FUNC_ICONIFY) { + /* don't let non-normal windows iconify along with their parents + or whatever */ + if (client_normal(self)) { self->iconic = iconic; /* update the focus lists.. iconic windows go to the bottom of
M openbox/client.hopenbox/client.h

@@ -339,8 +339,9 @@ (utilty, menu, etc) */

gboolean client_helper(ObClient *self); /*! Return if the client is a type which should be given focus from mouse - actions like button presses. This doesn't count for focus cycling, different - rules apply to that. */ + presses on the *client* window. This doesn't affect clicking on the + decorations. This doesn't count for focus cycling, different rules apply to + that. */ gboolean client_mouse_focusable(ObClient *self); /*! Return if the client is a type which should be given focus from the