diff --git a/src/wlserver.cpp b/src/wlserver.cpp index e0d1b93..cbf5df8 100644 --- a/src/wlserver.cpp +++ b/src/wlserver.cpp @@ -262,13 +262,13 @@ static inline uint32_t steamcompmgr_button_to_wlserver_button( int button ) switch ( button ) { default: - case 0: + case WLSERVER_TOUCH_CLICK_HOVER: return 0; - case 1: + case WLSERVER_TOUCH_CLICK_LEFT: return BTN_LEFT; - case 2: + case WLSERVER_TOUCH_CLICK_RIGHT: return BTN_RIGHT; - case 3: + case WLSERVER_TOUCH_CLICK_MIDDLE: return BTN_MIDDLE; } } @@ -307,6 +307,10 @@ static void wlserver_handle_touch_down(struct wl_listener *listener, void *data) wlserver.touch_down[ event->touch_id ] = true; } } + else if ( g_nTouchClickMode == WLSERVER_TOUCH_CLICK_DISABLED ) + { + return; + } else { g_bPendingTouchMovement = true; @@ -394,6 +398,10 @@ static void wlserver_handle_touch_motion(struct wl_listener *listener, void *dat { wlr_seat_touch_notify_motion( wlserver.wlr.seat, event->time_msec, event->touch_id, wlserver.mouse_surface_cursorx, wlserver.mouse_surface_cursory ); } + else if ( g_nTouchClickMode == WLSERVER_TOUCH_CLICK_DISABLED ) + { + return; + } else { g_bPendingTouchMovement = true; diff --git a/src/wlserver.hpp b/src/wlserver.hpp index 5ac95be..1522be6 100644 --- a/src/wlserver.hpp +++ b/src/wlserver.hpp @@ -126,6 +126,7 @@ enum wlserver_touch_click_mode { WLSERVER_TOUCH_CLICK_RIGHT = 2, WLSERVER_TOUCH_CLICK_MIDDLE = 3, WLSERVER_TOUCH_CLICK_PASSTHROUGH = 4, + WLSERVER_TOUCH_CLICK_DISABLED = 5, }; extern enum wlserver_touch_click_mode g_nDefaultTouchClickMode;