Partially revert "wayland: remove wl_shell and libweston patch"

We only want to recover the libinput patch that fixes the cursor issue in the
LVGL demo, don't recover the wl_shell patch.

This partially reverts commit 7afc4a67de.

https://onedigi.atlassian.net/browse/DEL-9925

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
This commit is contained in:
Gabriel Valcazar 2026-03-03 14:00:41 +01:00
parent de238b6d81
commit ec2d13053e
4 changed files with 187 additions and 1 deletions

View File

@ -0,0 +1,92 @@
From: Haihua Hu <jared.hu@nxp.com>
Date: Wed, 3 Aug 2022 16:34:47 +0800
Subject: [PATCH] Revert "libweston/libinput-device: Enable/Set pointer
capabilities only on pointer movement"
This reverts commit e825fe389ebd63470028abd828019840c1170a03.
This commit will cause waylandsink cannot register pointer seat.
As a result, mouse cannot move waylandsink window
(cherry picked from commit 3f8f336b5d2cf7ea7aa4e047d669d093fc46dfe6)
Upstream-Status: Inappropriate [DEY specific]
---
libweston/libinput-device.c | 29 +++++------------------------
1 file changed, 5 insertions(+), 24 deletions(-)
diff --git a/libweston/libinput-device.c b/libweston/libinput-device.c
index 4ea89de0..2d7a7d5f 100644
--- a/libweston/libinput-device.c
+++ b/libweston/libinput-device.c
@@ -60,21 +60,6 @@ evdev_led_update(struct evdev_device *device, enum weston_led weston_leds)
libinput_device_led_update(device->device, leds);
}
-static void
-ensure_pointer_capability(struct libinput_device *libinput_device)
-{
- struct evdev_device *device = libinput_device_get_user_data(libinput_device);
- struct weston_seat *seat = device->seat;
-
- if (!libinput_device_has_capability(libinput_device, LIBINPUT_DEVICE_CAP_POINTER))
- return;
-
- if (!(device->seat_caps & EVDEV_SEAT_POINTER)) {
- weston_seat_init_pointer(seat);
- device->seat_caps |= EVDEV_SEAT_POINTER;
- }
-}
-
static void
handle_keyboard_key(struct libinput_device *libinput_device,
struct libinput_event_keyboard *keyboard_event)
@@ -112,8 +97,6 @@ handle_pointer_motion(struct libinput_device *libinput_device,
struct timespec time;
double dx_unaccel, dy_unaccel;
- ensure_pointer_capability(libinput_device);
-
timespec_from_usec(&time,
libinput_event_pointer_get_time_usec(pointer_event));
dx_unaccel = libinput_event_pointer_get_dx_unaccelerated(pointer_event);
@@ -146,8 +129,6 @@ handle_pointer_motion_absolute(
double x, y;
uint32_t width, height;
- ensure_pointer_capability(libinput_device);
-
if (!output)
return false;
@@ -179,8 +160,6 @@ handle_pointer_button(struct libinput_device *libinput_device,
libinput_event_pointer_get_seat_button_count(pointer_event);
struct timespec time;
- ensure_pointer_capability(libinput_device);
-
/* Ignore button events that are not seat wide state changes. */
if ((button_state == LIBINPUT_BUTTON_STATE_PRESSED &&
seat_button_count != 1) ||
@@ -260,8 +239,6 @@ handle_pointer_axis(struct libinput_device *libinput_device,
bool has_vert, has_horiz;
struct timespec time;
- ensure_pointer_capability(libinput_device);
-
has_vert = libinput_event_pointer_has_axis(pointer_event,
LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL);
has_horiz = libinput_event_pointer_has_axis(pointer_event,
@@ -738,7 +715,11 @@ evdev_device_create(struct libinput_device *libinput_device,
device->seat_caps |= EVDEV_SEAT_KEYBOARD;
}
-
+ if (libinput_device_has_capability(libinput_device,
+ LIBINPUT_DEVICE_CAP_POINTER)) {
+ weston_seat_init_pointer(seat);
+ device->seat_caps |= EVDEV_SEAT_POINTER;
+ }
if (libinput_device_has_capability(libinput_device,
LIBINPUT_DEVICE_CAP_TOUCH)) {
if (weston_seat_init_touch(seat) < 0) {

View File

@ -5,6 +5,7 @@ SRC_URI:append:stm32mpcommon = " \
file://0002-Disable-request-to-EGL_DRM_RENDER_NODE_FILE_EXT.patch \
file://0003-Revert-compositor-improve-opacity-handling-for-scale.patch \
file://0004-Revert-compositor-set-transform.opaque-for-surfaces-.patch \
file://0005-Revert-libweston-libinput-device-Enable-Set-pointer-.patch \
"
SIMPLECLIENTS="egl,touch,dmabuf-v4l,dmabuf-egl"

View File

@ -0,0 +1,92 @@
From: Haihua Hu <jared.hu@nxp.com>
Date: Wed, 3 Aug 2022 16:34:47 +0800
Subject: [PATCH] Revert "libweston/libinput-device: Enable/Set pointer
capabilities only on pointer movement"
This reverts commit e825fe389ebd63470028abd828019840c1170a03.
This commit will cause waylandsink cannot register pointer seat.
As a result, mouse cannot move waylandsink window
Upstream-Status: Inappropriate [DEY specific]
(cherry picked from commit 3f8f336b5d2cf7ea7aa4e047d669d093fc46dfe6)
---
libweston/libinput-device.c | 29 +++++------------------------
1 file changed, 5 insertions(+), 24 deletions(-)
diff --git a/libweston/libinput-device.c b/libweston/libinput-device.c
index 31b88ac43c3a..207d0075ebb7 100644
--- a/libweston/libinput-device.c
+++ b/libweston/libinput-device.c
@@ -67,21 +67,6 @@ evdev_led_update(struct evdev_device *device, enum weston_led weston_leds)
libinput_device_led_update(device->device, leds);
}
-static void
-ensure_pointer_capability(struct libinput_device *libinput_device)
-{
- struct evdev_device *device = libinput_device_get_user_data(libinput_device);
- struct weston_seat *seat = device->seat;
-
- if (!libinput_device_has_capability(libinput_device, LIBINPUT_DEVICE_CAP_POINTER))
- return;
-
- if (!(device->seat_caps & EVDEV_SEAT_POINTER)) {
- weston_seat_init_pointer(seat);
- device->seat_caps |= EVDEV_SEAT_POINTER;
- }
-}
-
static void
handle_keyboard_key(struct libinput_device *libinput_device,
struct libinput_event_keyboard *keyboard_event)
@@ -119,8 +104,6 @@ handle_pointer_motion(struct libinput_device *libinput_device,
struct timespec time;
double dx_unaccel, dy_unaccel;
- ensure_pointer_capability(libinput_device);
-
timespec_from_usec(&time,
libinput_event_pointer_get_time_usec(pointer_event));
dx_unaccel = libinput_event_pointer_get_dx_unaccelerated(pointer_event);
@@ -152,8 +135,6 @@ handle_pointer_motion_absolute(
double x, y;
uint32_t width, height;
- ensure_pointer_capability(libinput_device);
-
if (!output)
return false;
@@ -184,8 +165,6 @@ handle_pointer_button(struct libinput_device *libinput_device,
libinput_event_pointer_get_seat_button_count(pointer_event);
struct timespec time;
- ensure_pointer_capability(libinput_device);
-
/* Ignore button events that are not seat wide state changes. */
if ((button_state == LIBINPUT_BUTTON_STATE_PRESSED &&
seat_button_count != 1) ||
@@ -264,8 +243,6 @@ handle_pointer_axis(struct libinput_device *libinput_device,
bool has_vert, has_horiz;
struct timespec time;
- ensure_pointer_capability(libinput_device);
-
has_vert = libinput_event_pointer_has_axis(pointer_event,
LIBINPUT_POINTER_AXIS_SCROLL_VERTICAL);
has_horiz = libinput_event_pointer_has_axis(pointer_event,
@@ -1025,7 +1002,11 @@ evdev_device_create(struct libinput_device *libinput_device,
device->seat_caps |= EVDEV_SEAT_KEYBOARD;
}
-
+ if (libinput_device_has_capability(libinput_device,
+ LIBINPUT_DEVICE_CAP_POINTER)) {
+ weston_seat_init_pointer(seat);
+ device->seat_caps |= EVDEV_SEAT_POINTER;
+ }
if (libinput_device_has_capability(libinput_device,
LIBINPUT_DEVICE_CAP_TOUCH)) {
if (weston_seat_init_touch(seat) < 0) {

View File

@ -1,7 +1,8 @@
# Copyright (C) 2024,2025, Digi International Inc.
# Copyright (C) 2024-2026, Digi International Inc.
FILESEXTRAPATHS:prepend := "${THISDIR}/${BP}:"
SRC_URI += " \
file://0002-Revert-libweston-libinput-device-Enable-Set-pointer-.patch \
file://0003-Revert-g2d-renderer-Support-solid-colour-weston_buff.patch \
"