From ec2d13053efe48a127cf4ac63fbbc972eba5cf94 Mon Sep 17 00:00:00 2001 From: Gabriel Valcazar Date: Tue, 3 Mar 2026 14:00:41 +0100 Subject: [PATCH] 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 7afc4a67ded1c0277a8d026f18ee5b5411d7ecbd. https://onedigi.atlassian.net/browse/DEL-9925 Signed-off-by: Gabriel Valcazar --- ...-libinput-device-Enable-Set-pointer-.patch | 92 +++++++++++++++++++ .../wayland/weston_13.0.1.bbappend | 1 + ...-libinput-device-Enable-Set-pointer-.patch | 92 +++++++++++++++++++ .../wayland/weston_12.0.5.imx.bbappend | 3 +- 4 files changed, 187 insertions(+), 1 deletion(-) create mode 100644 meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston/0005-Revert-libweston-libinput-device-Enable-Set-pointer-.patch create mode 100644 meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-12.0.5.imx/0002-Revert-libweston-libinput-device-Enable-Set-pointer-.patch diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston/0005-Revert-libweston-libinput-device-Enable-Set-pointer-.patch b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston/0005-Revert-libweston-libinput-device-Enable-Set-pointer-.patch new file mode 100644 index 000000000..756dbd546 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston/0005-Revert-libweston-libinput-device-Enable-Set-pointer-.patch @@ -0,0 +1,92 @@ +From: Haihua Hu +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) { diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston_13.0.1.bbappend b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston_13.0.1.bbappend index 0c1369353..f5416c492 100644 --- a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston_13.0.1.bbappend +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-graphics/wayland/weston_13.0.1.bbappend @@ -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" diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-12.0.5.imx/0002-Revert-libweston-libinput-device-Enable-Set-pointer-.patch b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-12.0.5.imx/0002-Revert-libweston-libinput-device-Enable-Set-pointer-.patch new file mode 100644 index 000000000..eb6e80c6e --- /dev/null +++ b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston-12.0.5.imx/0002-Revert-libweston-libinput-device-Enable-Set-pointer-.patch @@ -0,0 +1,92 @@ +From: Haihua Hu +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) { diff --git a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston_12.0.5.imx.bbappend b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston_12.0.5.imx.bbappend index 89dca484d..38149e8a8 100644 --- a/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston_12.0.5.imx.bbappend +++ b/meta-digi-dey/dynamic-layers/freescale-layer/recipes-graphics/wayland/weston_12.0.5.imx.bbappend @@ -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 \ "