summaryrefslogtreecommitdiff
path: root/src/lib/ecore_wayland/ecore_wl_private.h
diff options
context:
space:
mode:
authorRafael Antognolli <rafael.antognolli@intel.com>2013-11-29 16:04:18 -0200
committerRafael Antognolli <rafael.antognolli@intel.com>2013-11-29 18:05:19 -0200
commita14ee372e0285602a010856b090dcf7f7b3373e3 (patch)
tree938f6e2bdeebb52b7fc3d9a7fc29e533e1bec970 /src/lib/ecore_wayland/ecore_wl_private.h
parent2c95c5ee1d470650480781fe72518ef67263010d (diff)
ecore/wayland: Send a mouse up event when the implicit grab starts.
The previous workaround used to send a mouse up event to the application, using the pointer enter callback to determine when an implicit grab has finished. This was "simulating" a mouse up event when the surface move or resize finished. However, this doesn't work for touch-based move. The pointer enter isn't emitted, because the wl_touch interface doesn't have the concept of a pointer. Changing this code to make it more similar to what Weston's toytoolkit does, the mouse up event is sent as soon as the move or resize grab starts. After that, the compositor takes care of the move/resize almost entirely. Should fix T468.
Diffstat (limited to '')
-rw-r--r--src/lib/ecore_wayland/ecore_wl_private.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/ecore_wayland/ecore_wl_private.h b/src/lib/ecore_wayland/ecore_wl_private.h
index 80b454c0c2..ecb54f0467 100644
--- a/src/lib/ecore_wayland/ecore_wl_private.h
+++ b/src/lib/ecore_wayland/ecore_wl_private.h
@@ -129,8 +129,6 @@ struct _Ecore_Wl_Window
129 /* Eina_Bool resize_scheduled : 1; */ 129 /* Eina_Bool resize_scheduled : 1; */
130 Eina_Bool alpha : 1; 130 Eina_Bool alpha : 1;
131 Eina_Bool transparent : 1; 131 Eina_Bool transparent : 1;
132 Eina_Bool moving : 1;
133 Eina_Bool resizing : 1;
134 Eina_Bool has_buffer : 1; 132 Eina_Bool has_buffer : 1;
135 133
136 Ecore_Wl_Window_Type type; 134 Ecore_Wl_Window_Type type;
@@ -183,6 +181,7 @@ struct _Ecore_Wl_Input
183 181
184 Ecore_Wl_Window *grab; 182 Ecore_Wl_Window *grab;
185 unsigned int grab_button; 183 unsigned int grab_button;
184 unsigned int grab_timestamp;
186 185
187 Ecore_Wl_Dnd_Source *drag_source; 186 Ecore_Wl_Dnd_Source *drag_source;
188 Ecore_Wl_Dnd_Source *selection_source; 187 Ecore_Wl_Dnd_Source *selection_source;
@@ -258,6 +257,7 @@ void _ecore_wl_output_del(Ecore_Wl_Output *output);
258void _ecore_wl_input_add(Ecore_Wl_Display *ewd, unsigned int id); 257void _ecore_wl_input_add(Ecore_Wl_Display *ewd, unsigned int id);
259void _ecore_wl_input_del(Ecore_Wl_Input *input); 258void _ecore_wl_input_del(Ecore_Wl_Input *input);
260void _ecore_wl_input_pointer_xy_get(int *x, int *y); 259void _ecore_wl_input_pointer_xy_get(int *x, int *y);
260void _ecore_wl_input_grab_release(Ecore_Wl_Input *input, Ecore_Wl_Window *win);
261 261
262void _ecore_wl_dnd_add(Ecore_Wl_Input *input, struct wl_data_device *data_device, struct wl_data_offer *offer); 262void _ecore_wl_dnd_add(Ecore_Wl_Input *input, struct wl_data_device *data_device, struct wl_data_offer *offer);
263void _ecore_wl_dnd_enter(void *data, struct wl_data_device *data_device, unsigned int timestamp, struct wl_surface *surface, int x, int y, struct wl_data_offer *offer); 263void _ecore_wl_dnd_enter(void *data, struct wl_data_device *data_device, unsigned int timestamp, struct wl_surface *surface, int x, int y, struct wl_data_offer *offer);