From 0bb66d730b9c44b58ec94171c270c267cc37ca85 Mon Sep 17 00:00:00 2001 From: DreamMaoMao <2523610504@qq.com> Date: Sat, 4 Jul 2026 18:01:55 +0800 Subject: [PATCH] opt: disable gesture when disable_trackpad --- src/mango.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/src/mango.c b/src/mango.c index 50a3fd4d..89405bff 100644 --- a/src/mango.c +++ b/src/mango.c @@ -2225,6 +2225,10 @@ int32_t ongesture(struct wlr_pointer_swipe_end_event *event) { void swipe_begin(struct wl_listener *listener, void *data) { struct wlr_pointer_swipe_begin_event *event = data; + if (config.disable_trackpad) { + return; + } + // Forward swipe begin event to client wlr_pointer_gestures_v1_send_swipe_begin(pointer_gestures, seat, event->time_msec, event->fingers); @@ -2233,6 +2237,10 @@ void swipe_begin(struct wl_listener *listener, void *data) { void swipe_update(struct wl_listener *listener, void *data) { struct wlr_pointer_swipe_update_event *event = data; + if (config.disable_trackpad) { + return; + } + swipe_fingers = event->fingers; // Accumulate swipe distance swipe_dx += event->dx; @@ -2245,6 +2253,11 @@ void swipe_update(struct wl_listener *listener, void *data) { void swipe_end(struct wl_listener *listener, void *data) { struct wlr_pointer_swipe_end_event *event = data; + + if (config.disable_trackpad) { + return; + } + ongesture(event); swipe_dx = 0; swipe_dy = 0; @@ -2256,6 +2269,10 @@ void swipe_end(struct wl_listener *listener, void *data) { void pinch_begin(struct wl_listener *listener, void *data) { struct wlr_pointer_pinch_begin_event *event = data; + if (config.disable_trackpad) { + return; + } + // Forward pinch begin event to client wlr_pointer_gestures_v1_send_pinch_begin(pointer_gestures, seat, event->time_msec, event->fingers); @@ -2264,6 +2281,10 @@ void pinch_begin(struct wl_listener *listener, void *data) { void pinch_update(struct wl_listener *listener, void *data) { struct wlr_pointer_pinch_update_event *event = data; + if (config.disable_trackpad) { + return; + } + // Forward pinch update event to client wlr_pointer_gestures_v1_send_pinch_update( pointer_gestures, seat, event->time_msec, event->dx, event->dy, @@ -2273,6 +2294,10 @@ void pinch_update(struct wl_listener *listener, void *data) { void pinch_end(struct wl_listener *listener, void *data) { struct wlr_pointer_pinch_end_event *event = data; + if (config.disable_trackpad) { + return; + } + // Forward pinch end event to client wlr_pointer_gestures_v1_send_pinch_end(pointer_gestures, seat, event->time_msec, event->cancelled); @@ -2281,6 +2306,10 @@ void pinch_end(struct wl_listener *listener, void *data) { void hold_begin(struct wl_listener *listener, void *data) { struct wlr_pointer_hold_begin_event *event = data; + if (config.disable_trackpad) { + return; + } + // Forward hold begin event to client wlr_pointer_gestures_v1_send_hold_begin(pointer_gestures, seat, event->time_msec, event->fingers); @@ -2289,6 +2318,10 @@ void hold_begin(struct wl_listener *listener, void *data) { void hold_end(struct wl_listener *listener, void *data) { struct wlr_pointer_hold_end_event *event = data; + if (config.disable_trackpad) { + return; + } + // Forward hold end event to client wlr_pointer_gestures_v1_send_hold_end(pointer_gestures, seat, event->time_msec, event->cancelled);