wl_desktop_shell: cancel job grab of client while doing unmap 22/168722/1
authorDoyoun Kang <doyoun.kang@samsung.com>
Tue, 30 Jan 2018 08:53:53 +0000 (17:53 +0900)
committerDoyoun Kang <doyoun.kang@samsung.com>
Tue, 30 Jan 2018 08:53:59 +0000 (17:53 +0900)
If the window is unmapped which is under grabbing job, then e cancel the job grab.
And ec's visibility is set to unobscured temporarily because e should send the
fully-obscured event to notice app side.

Change-Id: Id81451f1892685b4078b0233f7c3dd743d48bc22

src/modules/wl_desktop_shell/e_mod_main.c

index 25e4db92ad8675bb99103d5e8a36ced586435e8d..ca96d330be5bf9d58d8a3ecfa0bbe5e1660ed6f5 100644 (file)
@@ -123,6 +123,13 @@ _e_shell_surface_destroy(struct wl_resource *resource)
    /* get the client for this resource */
    if ((ec = wl_resource_get_user_data(resource)))
      {
+        if (e_policy_visibility_client_grab_cancel(ec))
+          {
+             ELOGF("POL_VIS", "CLIENT VIS ON(temp).", ec->pixmap, ec);
+             ec->visibility.obscured = E_VISIBILITY_UNOBSCURED;
+             ec->visibility.changed = 1;
+          }
+
         if ((e_object_unref(E_OBJECT(ec))) &&
             (!e_object_is_del(E_OBJECT(ec))))
           {