diff options
author | Mike Blumenkrantz <zmike@osg.samsung.com> | 2017-03-10 15:57:15 -0500 |
---|---|---|
committer | Mike Blumenkrantz <zmike@osg.samsung.com> | 2017-03-10 15:55:06 -0500 |
commit | a06489951191b50d165a323056b0fa5dd6bbcfa3 (patch) | |
tree | 57ce1615033ae7b1371e1a87c6ab6bbd64544204 | |
parent | f253351f0ab3e71fb022f6036fe1c4ced8ced946 (diff) | |
download | enlightenment-a06489951191b50d165a323056b0fa5dd6bbcfa3.tar.gz |
move x11 iconic window init from e_hints -> comp_x initial fetch
this reflects the order in which the client passes through these functions
and fixes handling of iconic clients on startup
-rw-r--r-- | src/bin/e_comp_x.c | 8 | ||||
-rw-r--r-- | src/bin/e_hints.c | 8 |
2 files changed, 7 insertions, 9 deletions
diff --git a/src/bin/e_comp_x.c b/src/bin/e_comp_x.c index aaa82b30f6..03df29a782 100644 --- a/src/bin/e_comp_x.c +++ b/src/bin/e_comp_x.c @@ -3590,7 +3590,13 @@ _e_comp_x_hook_client_fetch(void *d EINA_UNUSED, E_Client *ec) &is_urgent)) { if (ec->new_client) - ec->icccm.initial_state = ec->icccm.state; + { + /* clients may unset iconic state when no wm is present */ + if (ec->netwm.state.hidden && (ec->icccm.state == ECORE_X_WINDOW_STATE_HINT_NORMAL)) + ec->icccm.initial_state = ECORE_X_WINDOW_STATE_HINT_ICONIC; + else + ec->icccm.initial_state = ec->icccm.state; + } if (state != ec->icccm.state) { if (ec->icccm.state == ECORE_X_WINDOW_STATE_HINT_WITHDRAWN) diff --git a/src/bin/e_hints.c b/src/bin/e_hints.c index 3ca5f21a04..358bb95eab 100644 --- a/src/bin/e_hints.c +++ b/src/bin/e_hints.c @@ -411,14 +411,6 @@ e_hints_window_init(E_Client *ec) if (ec->remember) rem = ec->remember; - if (ec->icccm.initial_state == ECORE_X_WINDOW_STATE_HINT_NONE) - { - if (ec->netwm.state.hidden) - ec->icccm.state = ECORE_X_WINDOW_STATE_HINT_ICONIC; - else - ec->icccm.state = ECORE_X_WINDOW_STATE_HINT_NORMAL; - } - if ((rem) && (rem->apply & E_REMEMBER_APPLY_LAYER)) { ec->layer = rem->prop.layer; |