File FIX-BUILD-libinput-add-support-for-LIBINPUT_SWITCH_KEYPAD_SLIDE-5261.patch of Package wlroots

From c1452d88114710f5772662b1d8efb9c71edaa34c Mon Sep 17 00:00:00 2001
From: Aleksei Bavshin <alebastr89@gmail.com>
Date: Sat, 7 Feb 2026 17:48:16 -0800
Subject: [PATCH 1/2] backend/libinput: fix build with libinput 1.31

---
 backend/libinput/meson.build | 4 ++++
 backend/libinput/switch.c    | 5 +++++
 2 files changed, 9 insertions(+)

diff --git a/backend/libinput/meson.build b/backend/libinput/meson.build
index c244eb77a..091b0e0eb 100644
--- a/backend/libinput/meson.build
+++ b/backend/libinput/meson.build
@@ -29,3 +29,7 @@ features += { 'libinput-backend': true }
 wlr_deps += libinput
 
 internal_config.set10('HAVE_LIBINPUT_BUSTYPE', libinput.version().version_compare('>=1.26.0'))
+internal_config.set10(
+	'HAVE_LIBINPUT_SWITCH_KEYPAD_SLIDE',
+	libinput.version().version_compare('>=1.30.901')
+)
diff --git a/backend/libinput/switch.c b/backend/libinput/switch.c
index abeec86d7..9dde3c9cb 100644
--- a/backend/libinput/switch.c
+++ b/backend/libinput/switch.c
@@ -2,6 +2,7 @@
 #include <libinput.h>
 #include <wlr/interfaces/wlr_switch.h>
 #include "backend/libinput.h"
+#include "config.h"
 
 const struct wlr_switch_impl libinput_switch_impl = {
 	.name = "libinput-switch",
@@ -36,6 +37,10 @@ void handle_switch_toggle(struct libinput_event *event,
 	case LIBINPUT_SWITCH_TABLET_MODE:
 		wlr_event.switch_type = WLR_SWITCH_TYPE_TABLET_MODE;
 		break;
+#if HAVE_LIBINPUT_SWITCH_KEYPAD_SLIDE
+	case LIBINPUT_SWITCH_KEYPAD_SLIDE:
+		return;
+#endif
 	}
 	switch (libinput_event_switch_get_switch_state(sevent)) {
 	case LIBINPUT_SWITCH_STATE_OFF:
-- 
GitLab


From 3676ab4df0e7b31efd9c72f543fd8e6326af95cc Mon Sep 17 00:00:00 2001
From: Aleksei Bavshin <alebastr89@gmail.com>
Date: Sat, 7 Feb 2026 17:48:16 -0800
Subject: [PATCH 2/2] backend/libinput: add support for
 LIBINPUT_SWITCH_KEYPAD_SLIDE

---
 backend/libinput/switch.c      | 3 ++-
 include/wlr/types/wlr_switch.h | 1 +
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/backend/libinput/switch.c b/backend/libinput/switch.c
index 9dde3c9cb..a78d37abe 100644
--- a/backend/libinput/switch.c
+++ b/backend/libinput/switch.c
@@ -39,7 +39,8 @@ void handle_switch_toggle(struct libinput_event *event,
 		break;
 #if HAVE_LIBINPUT_SWITCH_KEYPAD_SLIDE
 	case LIBINPUT_SWITCH_KEYPAD_SLIDE:
-		return;
+		wlr_event.switch_type = WLR_SWITCH_TYPE_KEYPAD_SLIDE;
+		break;
 #endif
 	}
 	switch (libinput_event_switch_get_switch_state(sevent)) {
diff --git a/include/wlr/types/wlr_switch.h b/include/wlr/types/wlr_switch.h
index 641df1991..2b9e91266 100644
--- a/include/wlr/types/wlr_switch.h
+++ b/include/wlr/types/wlr_switch.h
@@ -36,6 +36,7 @@ struct wlr_switch {
 enum wlr_switch_type {
 	WLR_SWITCH_TYPE_LID,
 	WLR_SWITCH_TYPE_TABLET_MODE,
+	WLR_SWITCH_TYPE_KEYPAD_SLIDE,
 };
 
 enum wlr_switch_state {
-- 
GitLab

openSUSE Build Service is sponsored by