[PATCH weston] shell: Update focused surface pointer coordinates in popup grab

Jonas Ådahl jadahl at gmail.com
Mon Aug 11 13:44:02 PDT 2014


The commit 'input: Send leave and enter pair when the surface moves
under the cursor' introduced focused surface local pointer coordinates
to keep track of if a surface had been moved or transformed in a way
that the pointer posititon relative to that surface would change.
Update these coordinates also for the popup grab as otherwise every
pointer motion during a popup grab results in leave and then enter
events.

Signed-off-by: Jonas Ådahl <jadahl at gmail.com>
---
 desktop-shell/shell.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 3c3649c..3c15f70 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -2979,6 +2979,11 @@ popup_grab_motion(struct weston_pointer_grab *grab, uint32_t time,
 	struct wl_resource *resource;
 	wl_fixed_t sx, sy;
 
+	if (pointer->focus) {
+		weston_view_from_global_fixed(pointer->focus, x, y,
+					      &pointer->sx, &pointer->sy);
+	}
+
 	weston_pointer_move(pointer, x, y);
 
 	wl_resource_for_each(resource, &pointer->focus_resource_list) {
-- 
1.8.5.1



More information about the wayland-devel mailing list