e_comp_wl_surface_commit(E_Client *ec)
{
Eina_Bool ignored;
+ int x = 0, y = 0;
_e_comp_wl_surface_state_commit(ec, &ec->comp_data->pending);
if (!e_comp_object_damage_exists(ec->frame))
evas_object_show(ec->comp_data->sub.below_obj);
}
ec->ignored = ignored;
+
+ if (ec->is_cursor && ec->visible)
+ {
+ /* ignore cursor changes during resize/move I guess */
+ if (!e_client_action_get())
+ {
+ if (e_comp->pointer)
+ {
+ x = e_comp->pointer->hot.x;
+ y = e_comp->pointer->hot.y;
+ }
+ e_pointer_object_set(e_comp->pointer, ec->frame, x, y);
+ }
+ }
return EINA_TRUE;
}
ec->is_cursor = EINA_TRUE;
}
+ /* Set a pointer_object after wl_surface commit
+ * if cursor image is changed,
+ * changed information is sent using attach / damage
+ * So in commit, we can know real current cursor image.
+ */
+#if 0
/* ignore cursor changes during resize/move I guess */
if (e_client_action_get()) return;
e_pointer_object_set(e_comp->pointer, ec->frame, x, y);
+#endif
+ if (e_comp->pointer)
+ {
+ e_comp->pointer->hot.x = x;
+ e_comp->pointer->hot.y = y;
+ ec->visible = EINA_TRUE;
+ }
}
static const struct wl_pointer_interface _e_pointer_interface =