mirror of
https://github.com/swaywm/sway.git
synced 2026-03-25 09:07:17 -04:00
sway/input/cursor: fix crash on first stylus tap after reboot via null check
handle_tool_tip() previously used event->tool->data without checking for NULL. When launching sway for the first time after a reboot, and then tapping with a USI 2.0 stylus, the tool tip event is fired before the tool proximity event. As event->tool is initialized during the tool proximity handler handle_tool_proximity(), this was causing a crash. The fix adds a NULL check before accessing the fields of event->tool->data. In case of a NULL, a log message is emitted indicating that the tool tip event fired before proximity. This logic is identical to the logic in handle_tool_axis(). Fixes issue #8907
This commit is contained in:
parent
8224d5fcf8
commit
3c0588a44f
1 changed files with 5 additions and 0 deletions
|
|
@ -644,6 +644,11 @@ static void handle_tool_tip(struct wl_listener *listener, void *data) {
|
||||||
cursor_handle_activity_from_device(cursor, &event->tablet->base);
|
cursor_handle_activity_from_device(cursor, &event->tablet->base);
|
||||||
|
|
||||||
struct sway_tablet_tool *sway_tool = event->tool->data;
|
struct sway_tablet_tool *sway_tool = event->tool->data;
|
||||||
|
if (!sway_tool) {
|
||||||
|
sway_log(SWAY_DEBUG, "tool tip before proximity");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
struct wlr_tablet_v2_tablet *tablet_v2 = sway_tool->tablet->tablet_v2;
|
struct wlr_tablet_v2_tablet *tablet_v2 = sway_tool->tablet->tablet_v2;
|
||||||
struct sway_seat *seat = cursor->seat;
|
struct sway_seat *seat = cursor->seat;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue