force wl client cursor clients to hide when unset from pointer
authorMike Blumenkrantz <zmike@osg.samsung.com>
Mon, 9 Feb 2015 19:35:11 +0000 (14:35 -0500)
committerMike Blumenkrantz <zmike@osg.samsung.com>
Mon, 9 Feb 2015 19:35:37 +0000 (14:35 -0500)
src/bin/e_comp_wl.c
src/bin/e_comp_wl_input.c

index c042ddbf6ab03025f7b1687d9872aee4377c235b..0d0c99f521959665371546a817f39f4d700bcfc7 100644 (file)
@@ -205,7 +205,13 @@ _e_comp_wl_evas_cb_mouse_out(void *data, Evas *evas EINA_UNUSED, Evas_Object *ob
 
       ecore_evas_cursor_get(e_comp->ee, &o, NULL, NULL, NULL);
       if (e_comp->pointer->o_ptr != o)
-        e_pointer_object_set(e_comp->pointer, NULL, 0, 0);
+        {
+           E_Client *pec;
+
+           pec = e_comp_object_client_get(o);
+           if (pec) pec->hidden = 1;
+           e_pointer_object_set(e_comp->pointer, NULL, 0, 0);
+        }
    }
    if (e_object_is_del(E_OBJECT(ec))) return;
 
index baab45ab163b473b8bb80827dbcebdc1f75daa06..fbbffdcf31646ec4a5a00c8634a82c1ff4c16867 100644 (file)
@@ -49,6 +49,7 @@ _e_comp_wl_input_pointer_cb_cursor_set(struct wl_client *client, struct wl_resou
      }
    /* ignore cursor changes during resize/move I guess */
    if (e_client_action_get()) return;
+   ec->hidden = 0;
    e_pointer_object_set(e_comp->pointer, ec->frame, x, y);
 }