e_config/e_policy_wl: add raise_before_show config 03/248503/2
authorDoyoun Kang <doyoun.kang@samsung.com>
Fri, 27 Nov 2020 07:18:48 +0000 (16:18 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Fri, 27 Nov 2020 08:21:52 +0000 (17:21 +0900)
if raise_before_show configuration is enabled, then window can raise before showing.

Change-Id: I344484cbf23e519f5787f785835e35c0f07177c3

src/bin/e_config.c
src/bin/e_config.h
src/bin/e_policy_wl.c

index 66cd50551c0cb85864af7f7710c1e2c5e26c8df3..1f439f5e3e4a440bec8189e95691525c4f4a6e4a 100644 (file)
@@ -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
index 7243b499ae397531181df3d61a23ba2f1ca733b1..2e9d26684a0ac14594ee54f4d03f0a5ff0690830 100644 (file)
@@ -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
index f079f67a7cc688eb1119a0ff9c19a66a98cb7409..a803c97fa43bff1c150709fda140a0773dba517e 100644 (file)
@@ -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);