From a9065160c953b4c74c2cd4a8173f720318c29d4b Mon Sep 17 00:00:00 2001 From: Dana Jansens Date: Wed, 18 Jul 2007 17:07:54 -0400 Subject: [PATCH] don't restack windows when they request it with an invalid sibling --- openbox/event.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/openbox/event.c b/openbox/event.c index 3fa017f7..eb2646b5 100644 --- a/openbox/event.c +++ b/openbox/event.c @@ -1067,6 +1067,7 @@ static void event_handle_client(ObClient *client, XEvent *e) 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 @@ static void event_handle_client(ObClient *client, XEvent *e) { 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; } -- 2.45.2