all repos — openbox @ a9065160c953b4c74c2cd4a8173f720318c29d4b

openbox fork - make it a bit more like ryudo

don't restack windows when they request it with an invalid sibling
Dana Jansens danakj@orodu.net
commit

a9065160c953b4c74c2cd4a8173f720318c29d4b

parent

551528c57fcdfb911342bfd6dd271cb14dd251e9

1 files changed, 14 insertions(+), 7 deletions(-)

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

@@ -1067,6 +1067,7 @@

if (e->xconfigurerequest.value_mask & CWStackMode) { ObClient *sibling = NULL; gulong ignore_start; + gboolean ok = TRUE; /* get the sibling */ if (e->xconfigurerequest.value_mask & CWSibling) {

@@ -1078,16 +1079,22 @@ WINDOW_AS_CLIENT(win) != client)

{ sibling = WINDOW_AS_CLIENT(win); } + else + /* an invalid sibling was specified so don't restack at + all, it won't make sense no matter what we do */ + ok = FALSE; } - if (!config_focus_under_mouse) - ignore_start = event_start_ignore_all_enters(); - stacking_restack_request(client, sibling, - e->xconfigurerequest.detail); - if (!config_focus_under_mouse) - event_end_ignore_all_enters(ignore_start); + if (ok) { + if (!config_focus_under_mouse) + ignore_start = event_start_ignore_all_enters(); + stacking_restack_request(client, sibling, + e->xconfigurerequest.detail); + if (!config_focus_under_mouse) + event_end_ignore_all_enters(ignore_start); + } - /* if a stacking change moves the window without resizing */ + /* a stacking change moves the window without resizing */ move = TRUE; }