Compare commits

..

2 Commits

Author SHA1 Message Date
André Desgualdo Pereira
4ad530be10 decklayout fixes 2025-10-19 12:23:45 -03:00
Fernando Otto
4263f5be4d Fix: Fixing disconnect with the graphics tablet 2025-10-14 13:13:03 -03:00
2 changed files with 30 additions and 27 deletions

View File

@ -1,16 +1,16 @@
From e504dc0fccfc3994962f03dc824d8907c6afc64f Mon Sep 17 00:00:00 2001 From 9221dab35862605bd8768652488f8d6211f15a3e Mon Sep 17 00:00:00 2001
From: choc <notchoc@proton.me> From: Fernando Otto <fernandootto369@gmail.com>
Date: Sat, 4 May 2024 01:16:12 +0800 Date: Tue, 14 Oct 2025 12:52:30 -0300
Subject: [PATCH] implement wlr-tablet-v2 Subject: [PATCH] Fixing disconnect with the graphics tablet
--- ---
Makefile | 6 +- Makefile | 6 +-
config.def.h | 1 + config.def.h | 1 +
dwl.c | 224 +++++++++++++++++++++++++++++++++++++++++++++++++++ dwl.c | 226 +++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 230 insertions(+), 1 deletion(-) 3 files changed, 232 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile diff --git a/Makefile b/Makefile
index f955e7b..ce1b556 100644 index 3358bae..47a2bb2 100644
--- a/Makefile --- a/Makefile
+++ b/Makefile +++ b/Makefile
@@ -21,7 +21,8 @@ dwl: dwl.o util.o @@ -21,7 +21,8 @@ dwl: dwl.o util.o
@ -46,7 +46,7 @@ index 22d2171..3ad98ef 100644
static const int bypass_surface_visibility = 0; /* 1 means idle inhibitors will disable idle tracking even if it's surface isn't visible */ static const int bypass_surface_visibility = 0; /* 1 means idle inhibitors will disable idle tracking even if it's surface isn't visible */
static const unsigned int borderpx = 1; /* border pixel of windows */ static const unsigned int borderpx = 1; /* border pixel of windows */
diff --git a/dwl.c b/dwl.c diff --git a/dwl.c b/dwl.c
index ac9c36b..b8d129f 100644 index a2711f6..97d3d53 100644
--- a/dwl.c --- a/dwl.c
+++ b/dwl.c +++ b/dwl.c
@@ -50,6 +50,9 @@ @@ -50,6 +50,9 @@
@ -132,13 +132,15 @@ index ac9c36b..b8d129f 100644
void void
cursorconstrain(struct wlr_pointer_constraint_v1 *constraint) cursorconstrain(struct wlr_pointer_constraint_v1 *constraint)
{ {
@@ -1321,6 +1362,27 @@ destroykeyboardgroup(struct wl_listener *listener, void *data) @@ -1320,6 +1361,29 @@ destroykeyboardgroup(struct wl_listener *listener, void *data)
free(group); free(group);
} }
+void +void
+destroytablet(struct wl_listener *listener, void *data) +destroytablet(struct wl_listener *listener, void *data)
+{ +{
+ wl_list_remove(&tablet_device_destroy.link);
+ wlr_cursor_detach_input_device(cursor, tablet->wlr_device);
+ tablet = NULL; + tablet = NULL;
+} +}
+ +
@ -160,7 +162,7 @@ index ac9c36b..b8d129f 100644
Monitor * Monitor *
dirtomon(enum wlr_direction dir) dirtomon(enum wlr_direction dir)
{ {
@@ -1540,6 +1602,12 @@ inputdevice(struct wl_listener *listener, void *data) @@ -1539,6 +1603,12 @@ inputdevice(struct wl_listener *listener, void *data)
case WLR_INPUT_DEVICE_POINTER: case WLR_INPUT_DEVICE_POINTER:
createpointer(wlr_pointer_from_input_device(device)); createpointer(wlr_pointer_from_input_device(device));
break; break;
@ -173,7 +175,7 @@ index ac9c36b..b8d129f 100644
default: default:
/* TODO handle other input device types */ /* TODO handle other input device types */
break; break;
@@ -2567,6 +2635,8 @@ setup(void) @@ -2566,6 +2636,8 @@ setup(void)
relative_pointer_mgr = wlr_relative_pointer_manager_v1_create(dpy); relative_pointer_mgr = wlr_relative_pointer_manager_v1_create(dpy);
@ -182,7 +184,7 @@ index ac9c36b..b8d129f 100644
/* /*
* Creates a cursor, which is a wlroots utility for tracking the cursor * Creates a cursor, which is a wlroots utility for tracking the cursor
* image shown on screen. * image shown on screen.
@@ -2596,6 +2666,10 @@ setup(void) @@ -2595,6 +2667,10 @@ setup(void)
LISTEN_STATIC(&cursor->events.button, buttonpress); LISTEN_STATIC(&cursor->events.button, buttonpress);
LISTEN_STATIC(&cursor->events.axis, axisnotify); LISTEN_STATIC(&cursor->events.axis, axisnotify);
LISTEN_STATIC(&cursor->events.frame, cursorframe); LISTEN_STATIC(&cursor->events.frame, cursorframe);
@ -193,7 +195,7 @@ index ac9c36b..b8d129f 100644
cursor_shape_mgr = wlr_cursor_shape_manager_v1_create(dpy, 1); cursor_shape_mgr = wlr_cursor_shape_manager_v1_create(dpy, 1);
LISTEN_STATIC(&cursor_shape_mgr->events.request_set_shape, setcursorshape); LISTEN_STATIC(&cursor_shape_mgr->events.request_set_shape, setcursorshape);
@@ -2689,6 +2763,156 @@ tagmon(const Arg *arg) @@ -2688,6 +2764,156 @@ tagmon(const Arg *arg)
setmon(sel, dirtomon(arg->i), 0); setmon(sel, dirtomon(arg->i), 0);
} }
@ -351,5 +353,5 @@ index ac9c36b..b8d129f 100644
tile(Monitor *m) tile(Monitor *m)
{ {
-- --
2.43.0 2.51.0

View File

@ -1,14 +1,13 @@
From dd0abf07f9f3e456428b07e442b87578128da310 Mon Sep 17 00:00:00 2001 From f639289974285207be396eac085cce6a316294c0 Mon Sep 17 00:00:00 2001
From: A Frederick Christensen <dwl@ivories.org> From: Fernando Otto <fernandootto369@gmail.com>
Date: Sat, 17 May 2025 23:26:15 -0500 Date: Tue, 14 Oct 2025 12:20:37 -0300
Subject: [PATCH] Add tablet input Subject: [PATCH] Fixing disconnect with the graphics tablet
Signed-off-by: Aldrik Dunbar <aldrik@gmail.com>
--- ---
Makefile | 6 +- Makefile | 6 +-
config.def.h | 1 + config.def.h | 1 +
dwl.c | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++ dwl.c | 240 +++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 244 insertions(+), 1 deletion(-) 3 files changed, 246 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile diff --git a/Makefile b/Makefile
index 578194f..e0d1835 100644 index 578194f..e0d1835 100644
@ -47,7 +46,7 @@ index 95c2afa..1f06356 100644
static const int bypass_surface_visibility = 0; /* 1 means idle inhibitors will disable idle tracking even if it's surface isn't visible */ static const int bypass_surface_visibility = 0; /* 1 means idle inhibitors will disable idle tracking even if it's surface isn't visible */
static const unsigned int borderpx = 1; /* border pixel of windows */ static const unsigned int borderpx = 1; /* border pixel of windows */
diff --git a/dwl.c b/dwl.c diff --git a/dwl.c b/dwl.c
index 12f441e..1f3b325 100644 index 12f441e..43566fe 100644
--- a/dwl.c --- a/dwl.c
+++ b/dwl.c +++ b/dwl.c
@@ -51,6 +51,9 @@ @@ -51,6 +51,9 @@
@ -146,13 +145,15 @@ index 12f441e..1f3b325 100644
void void
cursorconstrain(struct wlr_pointer_constraint_v1 *constraint) cursorconstrain(struct wlr_pointer_constraint_v1 *constraint)
{ {
@@ -1383,6 +1430,27 @@ destroykeyboardgroup(struct wl_listener *listener, void *data) @@ -1383,6 +1430,29 @@ destroykeyboardgroup(struct wl_listener *listener, void *data)
free(group); free(group);
} }
+void +void
+destroytablet(struct wl_listener *listener, void *data) +destroytablet(struct wl_listener *listener, void *data)
+{ +{
+ wl_list_remove(&tablet_device_destroy.link);
+ wlr_cursor_detach_input_device(cursor, tablet->wlr_device);
+ tablet = NULL; + tablet = NULL;
+} +}
+ +
@ -174,7 +175,7 @@ index 12f441e..1f3b325 100644
Monitor * Monitor *
dirtomon(enum wlr_direction dir) dirtomon(enum wlr_direction dir)
{ {
@@ -1590,6 +1658,12 @@ inputdevice(struct wl_listener *listener, void *data) @@ -1590,6 +1660,12 @@ inputdevice(struct wl_listener *listener, void *data)
case WLR_INPUT_DEVICE_POINTER: case WLR_INPUT_DEVICE_POINTER:
createpointer(wlr_pointer_from_input_device(device)); createpointer(wlr_pointer_from_input_device(device));
break; break;
@ -187,7 +188,7 @@ index 12f441e..1f3b325 100644
default: default:
/* TODO handle other input device types */ /* TODO handle other input device types */
break; break;
@@ -2584,6 +2658,8 @@ setup(void) @@ -2584,6 +2660,8 @@ setup(void)
relative_pointer_mgr = wlr_relative_pointer_manager_v1_create(dpy); relative_pointer_mgr = wlr_relative_pointer_manager_v1_create(dpy);
@ -196,7 +197,7 @@ index 12f441e..1f3b325 100644
/* /*
* Creates a cursor, which is a wlroots utility for tracking the cursor * Creates a cursor, which is a wlroots utility for tracking the cursor
* image shown on screen. * image shown on screen.
@@ -2613,6 +2689,11 @@ setup(void) @@ -2613,6 +2691,11 @@ setup(void)
wl_signal_add(&cursor->events.button, &cursor_button); wl_signal_add(&cursor->events.button, &cursor_button);
wl_signal_add(&cursor->events.axis, &cursor_axis); wl_signal_add(&cursor->events.axis, &cursor_axis);
wl_signal_add(&cursor->events.frame, &cursor_frame); wl_signal_add(&cursor->events.frame, &cursor_frame);
@ -208,7 +209,7 @@ index 12f441e..1f3b325 100644
cursor_shape_mgr = wlr_cursor_shape_manager_v1_create(dpy, 1); cursor_shape_mgr = wlr_cursor_shape_manager_v1_create(dpy, 1);
wl_signal_add(&cursor_shape_mgr->events.request_set_shape, &request_set_cursor_shape); wl_signal_add(&cursor_shape_mgr->events.request_set_shape, &request_set_cursor_shape);
@@ -2708,6 +2789,163 @@ tagmon(const Arg *arg) @@ -2708,6 +2791,163 @@ tagmon(const Arg *arg)
setmon(sel, dirtomon(arg->i), 0); setmon(sel, dirtomon(arg->i), 0);
} }