summaryrefslogtreecommitdiff
path: root/openbox/client.c
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2008-01-27 20:26:29 -0500
committerDana Jansens <danakj@orodu.net>2008-01-27 23:38:28 -0500
commit3b48aa4ea29b4c41037b0f8b02c17e7fa138e31f (patch)
treed99f0a2b693be4e999e4d5fb6835956c65d09cd3 /openbox/client.c
parentd7837051412b03ef167744d26043c0413614f85b (diff)
fix a rare assert condition (window maps in iconic state but is not allowed to be iconic)
Diffstat (limited to 'openbox/client.c')
-rw-r--r--openbox/client.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/openbox/client.c b/openbox/client.c
index e5e25567..ba244756 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -309,9 +309,6 @@ void client_manage(Window window)
/* the session should get the last say though */
client_restore_session_state(self);
- /* now we have all of the window's information so we can set this up */
- client_setup_decor_and_functions(self, FALSE);
-
/* tell startup notification that this app started */
launch_time = sn_app_started(self->startup_id, self->class, self->name);
@@ -319,12 +316,18 @@ void client_manage(Window window)
WM_STATE to apply. */
client_change_state(self);
- /* add ourselves to the focus order */
+ /* add ourselves to the focus order. do this before
+ setup_decor_and_functions. if the window is mapping in a state that is
+ not allowed, then it will be adjusted, and that can change its position
+ in the focus order (deiconify for example) */
focus_order_add_new(self);
/* do this to add ourselves to the stacking list in a non-intrusive way */
client_calc_layer(self);
+ /* now we have all of the window's information so we can set this up */
+ client_setup_decor_and_functions(self, FALSE);
+
/* focus the new window? */
if (ob_state() != OB_STATE_STARTING &&
(!self->session || self->session->focused) &&