From d4361f4649257cb88a628840a1dee29bb8355748 Mon Sep 17 00:00:00 2001 From: Roman Gilg Date: Tue, 25 Feb 2020 17:31:07 +0100 Subject: [PATCH] refactor: unify pointer movement In nested mode we can use the same code path as in drm mode now. --- src/wlserver.c | 14 +++++++------- src/wlserver.h | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/wlserver.c b/src/wlserver.c index ceff2f8..bd7c1e6 100644 --- a/src/wlserver.c +++ b/src/wlserver.c @@ -680,15 +680,15 @@ void wlserver_mousefocus( struct wlr_surface *wlrsurface ) wlr_seat_pointer_notify_enter( wlserver.wlr.seat, wlrsurface, wlserver.mouse_surface_cursorx, wlserver.mouse_surface_cursory ); } -void wlserver_mousemotion( int x, int y, uint32_t time ) +void wlserver_mousemotion( int dx, int dy, uint32_t time ) { - pointerX += x; - pointerY += y; - if ( g_XWLDpy != NULL ) - { - XTestFakeRelativeMotionEvent( g_XWLDpy, x, y, CurrentTime ); - XFlush( g_XWLDpy ); + if (!wlserver.mouse_focus_surface) { + return; } + wlserver_movecursor(dx, dy, dx, dy, time); + wlr_seat_pointer_notify_motion(wlserver.wlr.seat, time, wlserver.mouse_surface_cursorx, + wlserver.mouse_surface_cursory); + wlr_seat_pointer_notify_frame(wlserver.wlr.seat); } void wlserver_mousebutton( int button, bool press, uint32_t time ) diff --git a/src/wlserver.h b/src/wlserver.h index 10ad2cc..72931c9 100644 --- a/src/wlserver.h +++ b/src/wlserver.h @@ -103,7 +103,7 @@ void wlserver_keyboardfocus( struct wlr_surface *surface ); void wlserver_key( uint32_t key, bool press, uint32_t time ); void wlserver_mousefocus( struct wlr_surface *wlrsurface ); -void wlserver_mousemotion( int x, int y, uint32_t time ); +void wlserver_mousemotion( int dx, int dy, uint32_t time ); void wlserver_mousebutton( int button, bool press, uint32_t time ); void wlserver_mousewheel( int x, int y, uint32_t time );