@@ -101,9 +101,7 @@ var activation: ?*h.xdg_activation_v1 = null;
101101var text_input : ? * h.zwp_text_input_v3 = null ;
102102var cursor_shape_device : ? * h.wp_cursor_shape_device_v1 = null ;
103103var relative_pointer : ? * h.zwp_relative_pointer_v1 = null ;
104- var swipe_gesture : ? * h.zwp_pointer_gesture_swipe_v1 = null ;
105- var pinch_gesture : ? * h.zwp_pointer_gesture_pinch_v1 = null ;
106- var hold_gesture : ? * h.zwp_pointer_gesture_hold_v1 = null ;
104+ var gesture_pinch : ? * h.zwp_pointer_gesture_pinch_v1 = null ;
107105var data_device : ? * h.wl_data_device = null ;
108106var data_offer : ? * h.wl_data_offer = null ;
109107var data_source : ? * h.wl_data_source = null ;
@@ -132,7 +130,6 @@ var preedit_active = false;
132130var commit_string : std .ArrayList (u8 ) = .empty ;
133131var touch_ids : std .StaticBitSet (256 ) = .empty ;
134132var touch_info : std .AutoHashMapUnmanaged (i32 , struct { public_id : u8 , window : * Window }) = .empty ;
135- var gesture_fingers : u8 = undefined ;
136133var clipboard_text : []const u8 = "" ;
137134
138135var pending_drag_has_uri : bool = false ;
@@ -257,9 +254,7 @@ fn destroyProxies() void {
257254 if (data_source ) | _ | h .wl_data_source_destroy (data_source );
258255 if (data_offer ) | _ | h .wl_data_offer_destroy (data_offer );
259256 if (data_device ) | _ | h .wl_data_device_destroy (data_device );
260- if (hold_gesture ) | _ | h .zwp_pointer_gesture_hold_v1_destroy (hold_gesture );
261- if (pinch_gesture ) | _ | h .zwp_pointer_gesture_pinch_v1_destroy (pinch_gesture );
262- if (swipe_gesture ) | _ | h .zwp_pointer_gesture_swipe_v1_destroy (swipe_gesture );
257+ if (gesture_pinch ) | _ | h .zwp_pointer_gesture_pinch_v1_destroy (gesture_pinch );
263258 if (relative_pointer ) | _ | h .zwp_relative_pointer_v1_destroy (relative_pointer );
264259 if (cursor_shape_device ) | _ | h .wp_cursor_shape_device_v1_destroy (cursor_shape_device );
265260 if (text_input ) | _ | h .zwp_text_input_v3_destroy (text_input );
@@ -881,17 +876,9 @@ fn seatCapabilities(_: ?*anyopaque, _: ?*h.wl_seat, capabilities: h.wl_seat_capa
881876 touch_ids = .empty ;
882877 touch_info .clearRetainingCapacity ();
883878 }
884- if (hold_gesture ) | _ | {
885- h .zwp_pointer_gesture_hold_v1_destroy (hold_gesture );
886- hold_gesture = null ;
887- }
888- if (pinch_gesture ) | _ | {
889- h .zwp_pointer_gesture_pinch_v1_destroy (pinch_gesture );
890- pinch_gesture = null ;
891- }
892- if (swipe_gesture ) | _ | {
893- h .zwp_pointer_gesture_swipe_v1_destroy (swipe_gesture );
894- swipe_gesture = null ;
879+ if (gesture_pinch ) | _ | {
880+ h .zwp_pointer_gesture_pinch_v1_destroy (gesture_pinch );
881+ gesture_pinch = null ;
895882 }
896883 if (relative_pointer ) | _ | {
897884 h .zwp_relative_pointer_v1_destroy (relative_pointer );
@@ -925,12 +912,8 @@ fn seatCapabilities(_: ?*anyopaque, _: ?*h.wl_seat, capabilities: h.wl_seat_capa
925912 _ = h .zwp_relative_pointer_v1_add_listener (relative_pointer , & relative_pointer_listener , null );
926913 }
927914 if (pointer_gestures ) | _ | {
928- swipe_gesture = h .zwp_pointer_gestures_v1_get_swipe_gesture (pointer_gestures , pointer );
929- _ = h .zwp_pointer_gesture_swipe_v1_add_listener (swipe_gesture , & swipe_gesture_listener , null );
930- pinch_gesture = h .zwp_pointer_gestures_v1_get_pinch_gesture (pointer_gestures , pointer );
931- _ = h .zwp_pointer_gesture_pinch_v1_add_listener (pinch_gesture , & pinch_gesture_listener , null );
932- hold_gesture = h .zwp_pointer_gestures_v1_get_hold_gesture (pointer_gestures , pointer );
933- _ = h .zwp_pointer_gesture_hold_v1_add_listener (hold_gesture , & hold_gesture_listener , null );
915+ gesture_pinch = h .zwp_pointer_gestures_v1_get_pinch_gesture (pointer_gestures , pointer );
916+ _ = h .zwp_pointer_gesture_pinch_v1_add_listener (gesture_pinch , & gesture_pinch_listener , null );
934917 }
935918 }
936919 if (capabilities & h .WL_SEAT_CAPABILITY_TOUCH != 0 ) {
@@ -1085,90 +1068,38 @@ fn relativePointerMotion(_: ?*anyopaque, _: ?*h.zwp_relative_pointer_v1, _: u32,
10851068 }
10861069}
10871070
1088- const swipe_gesture_listener : h.zwp_pointer_gesture_swipe_v1_listener = .{
1089- .begin = swipeBegin ,
1090- .update = swipeUpdate ,
1091- .end = swipeEnd ,
1071+ const gesture_pinch_listener : h.zwp_pointer_gesture_pinch_v1_listener = .{
1072+ .begin = gesturePinchBegin ,
1073+ .update = gesturePinchUpdate ,
1074+ .end = gesturePinchEnd ,
10921075};
10931076
1094- fn swipeBegin (_ : ? * anyopaque , _ : ? * h.zwp_pointer_gesture_swipe_v1 , _ : u32 , _ : u32 , surface : ? * h.wl_surface , fingers : u32 ) callconv (.c ) void {
1095- if (getWindow (surface )) | window | {
1096- gesture_focus = window ;
1097- gesture_fingers = @truncate (fingers );
1098- }
1099- }
1100-
1101- fn swipeUpdate (_ : ? * anyopaque , _ : ? * h.zwp_pointer_gesture_swipe_v1 , _ : u32 , dx : h.wl_fixed_t , dy : h.wl_fixed_t ) callconv (.c ) void {
1102- if (gesture_focus ) | window | {
1103- if (dx != 0 ) {
1104- internal .eventFn (window .event_fn_data , .{ .gesture_pan_x = .{ .fingers = gesture_fingers , .value = fixedToFloat (dx ) } });
1105- }
1106- if (dy != 0 ) {
1107- internal .eventFn (window .event_fn_data , .{ .gesture_pan_y = .{ .fingers = gesture_fingers , .value = fixedToFloat (dy ) } });
1108- }
1109- }
1110- }
1111-
1112- fn swipeEnd (_ : ? * anyopaque , _ : ? * h.zwp_pointer_gesture_swipe_v1 , _ : u32 , _ : u32 , cancelled : i32 ) callconv (.c ) void {
1113- if (gesture_focus ) | window | {
1114- if (cancelled == 1 ) {
1115- internal .eventFn (window .event_fn_data , .gesture_ignore );
1077+ fn gesturePinchBegin (_ : ? * anyopaque , _ : ? * h.zwp_pointer_gesture_pinch_v1 , _ : u32 , _ : u32 , surface : ? * h.wl_surface , fingers : u32 ) callconv (.c ) void {
1078+ if (fingers == 2 ) {
1079+ if (getWindow (surface )) | window | {
1080+ gesture_focus = window ;
11161081 }
11171082 }
11181083}
11191084
1120- const pinch_gesture_listener : h.zwp_pointer_gesture_pinch_v1_listener = .{
1121- .begin = pinchBegin ,
1122- .update = pinchUpdate ,
1123- .end = pinchEnd ,
1124- };
1125-
1126- fn pinchBegin (_ : ? * anyopaque , _ : ? * h.zwp_pointer_gesture_pinch_v1 , _ : u32 , _ : u32 , surface : ? * h.wl_surface , fingers : u32 ) callconv (.c ) void {
1127- if (getWindow (surface )) | window | {
1128- gesture_focus = window ;
1129- gesture_fingers = @truncate (fingers );
1130- }
1131- }
1132-
1133- fn pinchUpdate (_ : ? * anyopaque , _ : ? * h.zwp_pointer_gesture_pinch_v1 , _ : u32 , dx : h.wl_fixed_t , dy : h.wl_fixed_t , scale : h.wl_fixed_t , rotation : h.wl_fixed_t ) callconv (.c ) void {
1085+ fn gesturePinchUpdate (_ : ? * anyopaque , _ : ? * h.zwp_pointer_gesture_pinch_v1 , _ : u32 , dx : h.wl_fixed_t , dy : h.wl_fixed_t , scale : h.wl_fixed_t , rotation : h.wl_fixed_t ) callconv (.c ) void {
11341086 if (gesture_focus ) | window | {
11351087 if (dx != 0 ) {
1136- internal .eventFn (window .event_fn_data , .{ .gesture_pan_x = .{ . fingers = gesture_fingers , . value = fixedToFloat (dx ) } });
1088+ internal .eventFn (window .event_fn_data , .{ .gesture_pan_x = fixedToFloat (dx ) });
11371089 }
11381090 if (dy != 0 ) {
1139- internal .eventFn (window .event_fn_data , .{ .gesture_pan_y = .{ . fingers = gesture_fingers , . value = fixedToFloat (dy ) } });
1091+ internal .eventFn (window .event_fn_data , .{ .gesture_pan_y = fixedToFloat (dy ) });
11401092 }
11411093 if (scale != 0 ) {
1142- internal .eventFn (window .event_fn_data , .{ .gesture_zoom = .{ . fingers = gesture_fingers , . value = fixedToFloat (scale ) } });
1094+ internal .eventFn (window .event_fn_data , .{ .gesture_zoom = fixedToFloat (scale ) });
11431095 }
11441096 if (rotation != 0 ) {
1145- internal .eventFn (window .event_fn_data , .{ .gesture_rotate = .{ .fingers = gesture_fingers , .value = fixedToFloat (rotation ) } });
1146- }
1147- }
1148- }
1149-
1150- fn pinchEnd (_ : ? * anyopaque , _ : ? * h.zwp_pointer_gesture_pinch_v1 , _ : u32 , _ : u32 , cancelled : i32 ) callconv (.c ) void {
1151- if (gesture_focus ) | window | {
1152- if (cancelled == 1 ) {
1153- internal .eventFn (window .event_fn_data , .gesture_ignore );
1097+ internal .eventFn (window .event_fn_data , .{ .gesture_rotate = fixedToFloat (rotation ) });
11541098 }
11551099 }
11561100}
11571101
1158- const hold_gesture_listener : h.zwp_pointer_gesture_hold_v1_listener = .{
1159- .begin = holdBegin ,
1160- .end = holdEnd ,
1161- };
1162-
1163- fn holdBegin (_ : ? * anyopaque , _ : ? * h.zwp_pointer_gesture_hold_v1 , _ : u32 , _ : u32 , surface : ? * h.wl_surface , fingers : u32 ) callconv (.c ) void {
1164- if (getWindow (surface )) | window | {
1165- gesture_focus = window ;
1166- gesture_fingers = @truncate (fingers );
1167- internal .eventFn (window .event_fn_data , .{ .gesture_hold = .{ .fingers = gesture_fingers , .value = 0 } });
1168- }
1169- }
1170-
1171- fn holdEnd (_ : ? * anyopaque , _ : ? * h.zwp_pointer_gesture_hold_v1 , _ : u32 , _ : u32 , cancelled : i32 ) callconv (.c ) void {
1102+ fn gesturePinchEnd (_ : ? * anyopaque , _ : ? * h.zwp_pointer_gesture_pinch_v1 , _ : u32 , _ : u32 , cancelled : i32 ) callconv (.c ) void {
11721103 if (gesture_focus ) | window | {
11731104 if (cancelled == 1 ) {
11741105 internal .eventFn (window .event_fn_data , .gesture_ignore );
0 commit comments