From 51bd6bff36ed1c22d6f75d75f6fad62297a1fb93 Mon Sep 17 00:00:00 2001 From: Doyoun Kang Date: Fri, 27 Nov 2020 16:18:48 +0900 Subject: [PATCH] e_config/e_policy_wl: add raise_before_show config if raise_before_show configuration is enabled, then window can raise before showing. Change-Id: I344484cbf23e519f5787f785835e35c0f07177c3 --- src/bin/e_config.c | 2 ++ src/bin/e_config.h | 1 + src/bin/e_policy_wl.c | 19 ++++++++++++++++--- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/bin/e_config.c b/src/bin/e_config.c index 66cd50551c..1f439f5e3e 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -311,6 +311,7 @@ _e_config_edd_init(Eina_Bool old) E_CONFIG_VAL(D, T, fake_output_resolution.use, UCHAR); E_CONFIG_VAL(D, T, fake_output_resolution.w, INT); E_CONFIG_VAL(D, T, fake_output_resolution.h, INT); + E_CONFIG_VAL(D, T, raise_before_show, UCHAR); } static Eina_Bool @@ -552,6 +553,7 @@ e_config_load(void) E_CONFIG_LIMIT(e_config->desk_zoom_effect.enable, 0, 1); E_CONFIG_LIMIT(e_config->desk_zoom_effect.duration, 0.0, 10.0); E_CONFIG_LIMIT(e_config->fake_output_resolution.use, 0, 1); + E_CONFIG_LIMIT(e_config->raise_before_show, 0, 1); } E_API int diff --git a/src/bin/e_config.h b/src/bin/e_config.h index 7243b499ae..2e9d26684a 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -270,6 +270,7 @@ struct _E_Config int w; // fake resolution width int h; // fake resolution height } fake_output_resolution; + Eina_Bool raise_before_show; // 0: raise after show, 1: raise before show }; struct _E_Config_Desklock_Background diff --git a/src/bin/e_policy_wl.c b/src/bin/e_policy_wl.c index f079f67a7c..a803c97fa4 100644 --- a/src/bin/e_policy_wl.c +++ b/src/bin/e_policy_wl.c @@ -1377,7 +1377,12 @@ _tzpol_iface_cb_activate(struct wl_client *client EINA_UNUSED, struct wl_resourc ec->post_lower = EINA_FALSE; cdata = e_client_cdata_get(ec); if (cdata && !cdata->mapped) - ec->post_raise = EINA_TRUE; + { + if (e_config->raise_before_show) + e_client_raise(ec); + else + ec->post_raise = EINA_TRUE; + } e_policy_wl_activate(ec); } @@ -1579,8 +1584,16 @@ _tzpol_iface_cb_raise(struct wl_client *client EINA_UNUSED, struct wl_resource * cdata = e_client_cdata_get(ec); if (cdata && !cdata->mapped) { - ELOGF("TZPOL", "POST_RAISE_LOWER SET... raise:%d, lower:%d", ec, EINA_TRUE, EINA_FALSE); - e_client_post_raise_lower_set(ec, EINA_TRUE, EINA_FALSE); + if (e_config->raise_before_show) + { + ELOGF("TZPOL", "POST_RAISE_LOWER SET... raise:%d, lower:%d", ec, EINA_FALSE, EINA_FALSE); + e_client_post_raise_lower_set(ec, EINA_FALSE, EINA_FALSE); + } + else + { + ELOGF("TZPOL", "POST_RAISE_LOWER SET... raise:%d, lower:%d", ec, EINA_TRUE, EINA_FALSE); + e_client_post_raise_lower_set(ec, EINA_TRUE, EINA_FALSE); + } } e_policy_hook_call(E_POLICY_HOOK_CLIENT_RAISE_REQ_DONE, ec); -- 2.34.1