e_comp_object,e_policy_wl: doing focus_stack_lower if ec isn't post_lower set 84/209384/2
authorJunseok, Kim <juns.kim@samsung.com>
Fri, 5 Jul 2019 08:04:19 +0000 (17:04 +0900)
committerJunseok, Kim <juns.kim@samsung.com>
Fri, 5 Jul 2019 08:10:53 +0000 (17:10 +0900)
There is a focus bug that client appended to focus stack despite it
isn't shown ever.
If client calls evas_object_show & lower, post lower set to client and
doing stack lower.
And Intercept_lower calls focus_stack_lower so that the client appended
to focus stack.
But, the client do not included to focus stack before first shown.
For solve this problem, make post_raise_lower_set little earlier and
didn't call focus_stack_lower if the post_lower set.

Change-Id: I0e9809ca7aa358f88cf5b21bc64dd5f6b29ab996
Signed-off-by: Junseok, Kim <juns.kim@samsung.com>
src/bin/e_comp_object.c
src/bin/e_policy_wl.c

index d4089c803e09ce443f25aeffa7d640c2d938bb57..275b00f57bf4f312db2b5d20fe882577a466c087 100644 (file)
@@ -1983,7 +1983,8 @@ _e_comp_intercept_lower(void *data, Evas_Object *obj)
    _e_comp_object_transform_obj_stack_update(obj);
 
 end:
-   e_client_focus_stack_lower(cw->ec);
+   if (!cw->ec->post_lower)
+     e_client_focus_stack_lower(cw->ec);
    TRACE_DS_END();
 }
 
index 151de4a6ae188e6e846fc04b1c1290a2089caba8..e17e69ebb88bde4690fccc094808c54ad5f45f6c 100644 (file)
@@ -1743,14 +1743,14 @@ _tzpol_iface_cb_lower(struct wl_client *client EINA_UNUSED, struct wl_resource *
    if (e_policy_visibility_client_lower(ec))
      return;
 
-   evas_object_lower(ec->frame);
-
    if ((ec->comp_data) && (!ec->comp_data->mapped))
      {
         ELOGF("TZPOL", "POST_RAISE_LOWER SET... raise:%d, lower:%d", ec, EINA_FALSE, EINA_TRUE);
         e_client_post_raise_lower_set(ec, EINA_FALSE, EINA_TRUE);
      }
 
+   evas_object_lower(ec->frame);
+
    if (ec->focused)
      e_client_revert_focus(ec);
 }