freescale-layer: weston: change bbappend version from 11.0.3.imx to 12.0.4.imx

Adapt patches and add the "Upstream-Status" tag to them to avoid QA errors

https://onedigi.atlassian.net/browse/DEL-9011
https://onedigi.atlassian.net/browse/DEL-9081

Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
This commit is contained in:
Gabriel Valcazar 2024-05-13 12:16:11 +02:00
parent 6f3e28d9f6
commit 8699ce656c
3 changed files with 66 additions and 61 deletions

View File

@ -1,10 +1,10 @@
From: Gabriel Valcazar <gabriel.valcazar@digi.com>
Date: Fri, 19 Jan 2024 09:45:19 +0100
Subject: [PATCH] Restore wl_shell to weston 11
Subject: [PATCH] Restore wl_shell to weston 12
This shell was deprecated some time ago and removed in weston 11, but it's the
This shell was deprecated some time ago and removed in weston 12, but it's the
default shell used by LVGL's wayland backend. Until we migrate said backend to
use xdg_shell, restore wl_shell in weston 11.
use xdg_shell, restore wl_shell in weston 12.
This reverts the following commits:
@ -12,6 +12,8 @@ This reverts the following commits:
* 7cae2a1fb0aeec24ca33ac4c7cbb268f77095cb5
* e6b8f5a5e40cd6c0b934e8ae079c86d5193efa96
Upstream-Status: Inappropriate [digi specific]
Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
---
desktop-shell/shell.c | 26 +-
@ -26,11 +28,11 @@ Signed-off-by: Gabriel Valcazar <gabriel.valcazar@digi.com>
create mode 100644 libweston/desktop/wl-shell.c
diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c
index 91fadd0b..fced4d76 100644
index 99ad3dfb..51097b72 100644
--- a/desktop-shell/shell.c
+++ b/desktop-shell/shell.c
@@ -1163,16 +1163,16 @@ resize_grab_motion(struct weston_pointer_grab *grab,
pointer->x, pointer->y, &to_x, &to_y);
@@ -1367,16 +1367,16 @@ resize_grab_motion(struct weston_pointer_grab *grab,
to_y = wl_fixed_from_double(tmp_s.c.y);
width = resize->width;
- if (resize->edges & WESTON_DESKTOP_SURFACE_EDGE_LEFT) {
@ -50,7 +52,7 @@ index 91fadd0b..fced4d76 100644
height += wl_fixed_to_int(to_y - from_y);
}
@@ -1250,9 +1250,9 @@ surface_resize(struct shell_surface *shsurf,
@@ -1454,9 +1454,9 @@ surface_resize(struct shell_surface *shsurf,
{
struct weston_resize_grab *resize;
const unsigned resize_topbottom =
@ -62,7 +64,7 @@ index 91fadd0b..fced4d76 100644
const unsigned resize_any = resize_topbottom | resize_leftright;
struct weston_geometry geometry;
@@ -1262,7 +1262,7 @@ surface_resize(struct shell_surface *shsurf,
@@ -1466,7 +1466,7 @@ surface_resize(struct shell_surface *shsurf,
return 0;
/* Check for invalid edge combinations. */
@ -71,7 +73,7 @@ index 91fadd0b..fced4d76 100644
(edges & resize_topbottom) == resize_topbottom ||
(edges & resize_leftright) == resize_leftright)
return 0;
@@ -2123,9 +2123,9 @@ desktop_surface_committed(struct weston_desktop_surface *desktop_surface,
@@ -2469,9 +2469,9 @@ desktop_surface_committed(struct weston_desktop_surface *desktop_surface,
sy = 0;
}
@ -82,9 +84,9 @@ index 91fadd0b..fced4d76 100644
+ if (shsurf->resize_edges & WL_SHELL_SURFACE_RESIZE_TOP)
sy = shsurf->last_height - surface->height;
weston_view_to_global_float(shsurf->view, 0, 0, &from_x, &from_y);
@@ -3084,18 +3084,18 @@ resize_binding(struct weston_pointer *pointer, const struct timespec *time,
&x, &y);
to_s = weston_coord_surface(sx, sy, view->surface);
@@ -3450,18 +3450,18 @@ resize_binding(struct weston_pointer *pointer, const struct timespec *time,
y = surf_pos.c.y;
if (x < surface->width / 3)
- edges |= WESTON_DESKTOP_SURFACE_EDGE_LEFT;
@ -107,10 +109,10 @@ index 91fadd0b..fced4d76 100644
surface_resize(shsurf, pointer, edges);
}
diff --git a/libweston/backend-wayland/wayland.c b/libweston/backend-wayland/wayland.c
index bb5648d5..3ba20ff7 100644
index 48c21b99..7a82b1a6 100644
--- a/libweston/backend-wayland/wayland.c
+++ b/libweston/backend-wayland/wayland.c
@@ -76,6 +76,7 @@ struct wayland_backend {
@@ -85,6 +85,7 @@ struct wayland_backend {
struct wl_display *wl_display;
struct wl_registry *registry;
struct wl_compositor *compositor;
@ -118,7 +120,7 @@ index bb5648d5..3ba20ff7 100644
struct xdg_wm_base *xdg_wm_base;
struct zwp_fullscreen_shell_v1 *fshell;
struct wl_shm *shm;
@@ -111,6 +112,7 @@ struct wayland_output {
@@ -123,6 +124,7 @@ struct wayland_output {
struct wl_output *output;
uint32_t global_id;
@ -126,7 +128,7 @@ index bb5648d5..3ba20ff7 100644
struct xdg_surface *xdg_surface;
struct xdg_toplevel *xdg_toplevel;
int configure_width, configure_height;
@@ -715,6 +717,11 @@ wayland_backend_destroy_output_surface(struct wayland_output *output)
@@ -665,6 +667,11 @@ wayland_backend_destroy_output_surface(struct wayland_output *output)
output->parent.xdg_surface = NULL;
}
@ -138,7 +140,7 @@ index bb5648d5..3ba20ff7 100644
wl_surface_destroy(output->parent.surface);
output->parent.surface = NULL;
}
@@ -787,6 +794,8 @@ wayland_output_destroy(struct weston_output *base)
@@ -737,6 +744,8 @@ wayland_output_destroy(struct weston_output *base)
free(output);
}
@ -147,7 +149,7 @@ index bb5648d5..3ba20ff7 100644
#ifdef ENABLE_EGL
static int
wayland_output_init_gl_renderer(struct wayland_output *output)
@@ -940,6 +949,8 @@ wayland_output_set_windowed(struct wayland_output *output)
@@ -899,6 +908,8 @@ wayland_output_set_windowed(struct wayland_output *output)
if (output->parent.xdg_toplevel) {
xdg_toplevel_unset_fullscreen(output->parent.xdg_toplevel);
@ -156,7 +158,7 @@ index bb5648d5..3ba20ff7 100644
} else {
abort();
}
@@ -949,6 +960,7 @@ wayland_output_set_windowed(struct wayland_output *output)
@@ -908,6 +919,7 @@ wayland_output_set_windowed(struct wayland_output *output)
static void
wayland_output_set_fullscreen(struct wayland_output *output,
@ -164,7 +166,7 @@ index bb5648d5..3ba20ff7 100644
uint32_t framerate, struct wl_output *target)
{
if (output->frame) {
@@ -960,6 +972,9 @@ wayland_output_set_fullscreen(struct wayland_output *output,
@@ -919,6 +931,9 @@ wayland_output_set_fullscreen(struct wayland_output *output,
if (output->parent.xdg_toplevel) {
xdg_toplevel_set_fullscreen(output->parent.xdg_toplevel, target);
@ -174,16 +176,16 @@ index bb5648d5..3ba20ff7 100644
} else {
abort();
}
@@ -1089,7 +1104,7 @@ wayland_output_switch_mode(struct weston_output *output_base,
@@ -1139,7 +1154,7 @@ wayland_output_switch_mode(struct weston_output *output_base,
b = to_wayland_backend(output_base->compositor);
if (output->parent.xdg_surface)
return wayland_output_switch_mode_xdg(output, mode);
- if (output->backend->parent.fshell)
+ if (output->backend->parent.fshell || output->parent.shell_surface)
return wayland_output_switch_mode_fshell(output, mode);
- if (output->parent.xdg_surface || !b->parent.fshell)
+ if (output->parent.xdg_surface || output->parent.shell_surface || !b->parent.fshell)
return -1;
mode = wayland_output_choose_mode(output, mode);
@@ -1230,6 +1245,20 @@ wayland_backend_create_output_surface(struct wayland_output *output)
return -1;
@@ -1245,6 +1260,20 @@ wayland_backend_create_output_surface(struct wayland_output *output)
weston_log("wayland-backend: Using xdg_wm_base\n");
}
@ -204,7 +206,7 @@ index bb5648d5..3ba20ff7 100644
return 0;
}
@@ -1294,9 +1323,13 @@ wayland_output_enable(struct weston_output *base)
@@ -1309,9 +1338,13 @@ wayland_output_enable(struct weston_output *base)
output->parent.draw_initial_frame = true;
}
@ -219,7 +221,7 @@ index bb5648d5..3ba20ff7 100644
} else {
wayland_output_set_windowed(output);
}
@@ -1578,10 +1611,13 @@ wayland_output_setup_fullscreen(struct wayland_output *output,
@@ -1600,10 +1633,13 @@ wayland_output_setup_fullscreen(struct wayland_output *output,
return -1;
/* What should size be set if conditional is false? */
@ -234,7 +236,7 @@ index bb5648d5..3ba20ff7 100644
wl_display_roundtrip(b->parent.wl_display);
@@ -1605,6 +1641,36 @@ err_set_size:
@@ -1627,6 +1663,36 @@ err_set_size:
return -1;
}
@ -271,7 +273,7 @@ index bb5648d5..3ba20ff7 100644
/* Events received from the wayland-server this compositor is client of: */
/* parent input interface */
@@ -1782,6 +1848,9 @@ input_handle_button(void *data, struct wl_pointer *pointer,
@@ -1808,6 +1874,9 @@ input_handle_button(void *data, struct wl_pointer *pointer,
if (input->output->parent.xdg_toplevel)
xdg_toplevel_move(input->output->parent.xdg_toplevel,
input->parent.seat, serial);
@ -281,7 +283,7 @@ index bb5648d5..3ba20ff7 100644
frame_status_clear(input->output->frame,
FRAME_STATUS_MOVE);
return;
@@ -2135,6 +2204,9 @@ input_handle_touch_down(void *data, struct wl_touch *wl_touch,
@@ -2169,6 +2238,9 @@ input_handle_touch_down(void *data, struct wl_touch *wl_touch,
if (output->parent.xdg_toplevel)
xdg_toplevel_move(output->parent.xdg_toplevel,
input->parent.seat, serial);
@ -291,7 +293,7 @@ index bb5648d5..3ba20ff7 100644
frame_status_clear(output->frame,
FRAME_STATUS_MOVE);
return;
@@ -2647,6 +2719,10 @@ registry_handle_global(void *data, struct wl_registry *registry, uint32_t name,
@@ -2683,6 +2755,10 @@ registry_handle_global(void *data, struct wl_registry *registry, uint32_t name,
&xdg_wm_base_interface, 1);
xdg_wm_base_add_listener(b->parent.xdg_wm_base,
&wm_base_listener, b);
@ -302,7 +304,7 @@ index bb5648d5..3ba20ff7 100644
} else if (strcmp(interface, "zwp_fullscreen_shell_v1") == 0) {
b->parent.fshell =
wl_registry_bind(registry, name,
@@ -2741,6 +2817,9 @@ wayland_destroy(struct weston_compositor *ec)
@@ -2778,6 +2854,9 @@ wayland_destroy(struct weston_backend *backend)
if (b->parent.xdg_wm_base)
xdg_wm_base_destroy(b->parent.xdg_wm_base);
@ -312,7 +314,7 @@ index bb5648d5..3ba20ff7 100644
if (b->parent.fshell)
zwp_fullscreen_shell_v1_release(b->parent.fshell);
@@ -2808,7 +2887,7 @@ fullscreen_binding(struct weston_keyboard *keyboard,
@@ -2847,7 +2926,7 @@ fullscreen_binding(struct weston_keyboard *keyboard,
return;
if (input->output->frame)
@ -322,10 +324,10 @@ index bb5648d5..3ba20ff7 100644
wayland_output_set_windowed(input->output);
diff --git a/libweston/desktop/internal.h b/libweston/desktop/internal.h
index 1d035d5c..93b15919 100644
index c8d09272..41e81b13 100644
--- a/libweston/desktop/internal.h
+++ b/libweston/desktop/internal.h
@@ -241,6 +241,10 @@ weston_desktop_xdg_wm_base_create(struct weston_desktop *desktop,
@@ -249,6 +249,10 @@ weston_desktop_xdg_wm_base_create(struct weston_desktop *desktop,
struct wl_global *
weston_desktop_xdg_shell_v6_create(struct weston_desktop *desktop,
struct wl_display *display);
@ -337,7 +339,7 @@ index 1d035d5c..93b15919 100644
weston_desktop_xwayland_init(struct weston_desktop *desktop);
void
diff --git a/libweston/desktop/libweston-desktop.c b/libweston/desktop/libweston-desktop.c
index 0be9d717..cbe69942 100644
index 05240cfb..b74ee09f 100644
--- a/libweston/desktop/libweston-desktop.c
+++ b/libweston/desktop/libweston-desktop.c
@@ -42,6 +42,7 @@ struct weston_desktop {
@ -394,7 +396,7 @@ index 4588ad10..d8e1a709 100644
])
diff --git a/libweston/desktop/wl-shell.c b/libweston/desktop/wl-shell.c
new file mode 100644
index 00000000..9efec89b
index 00000000..26360de9
--- /dev/null
+++ b/libweston/desktop/wl-shell.c
@@ -0,0 +1,497 @@
@ -433,7 +435,7 @@ index 00000000..9efec89b
+#include <libweston/libweston.h>
+#include <libweston/zalloc.h>
+
+#include <libweston-desktop/libweston-desktop.h>
+#include <libweston/desktop.h>
+#include "internal.h"
+
+#define WD_WL_SHELL_PROTOCOL_VERSION 1
@ -747,7 +749,7 @@ index 00000000..9efec89b
+
+ weston_desktop_wl_shell_change_state(surface, POPUP,
+ parent_surface, x, y);
+ weston_desktop_surface_popup_grab(surface->surface, seat, serial);
+ weston_desktop_surface_popup_grab(surface->surface, parent_surface, seat, serial);
+ surface->popup_seat = seat;
+}
+
@ -896,10 +898,10 @@ index 00000000..9efec89b
+ weston_desktop_wl_shell_bind);
+}
diff --git a/meson.build b/meson.build
index 6452ca05..64575226 100644
index 53dd670b..a6b2cb61 100644
--- a/meson.build
+++ b/meson.build
@@ -141,6 +141,12 @@ if dep_xkbcommon.version().version_compare('>= 0.5.0')
@@ -137,6 +137,12 @@ if dep_xkbcommon.version().version_compare('>= 0.5.0')
config_h.set('HAVE_XKBCOMMON_COMPOSE', '1')
endif
@ -913,10 +915,10 @@ index 6452ca05..64575226 100644
dep_wayland_client = dependency('wayland-client', version: '>= 1.20.0')
dep_pixman = dependency('pixman-1', version: '>= 0.25.2')
diff --git a/meson_options.txt b/meson_options.txt
index 695eb780..203fa12d 100644
index 643c6d61..cb833c2d 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -132,6 +132,13 @@ option(
@@ -144,6 +144,13 @@ option(
description: 'Weston desktop shell: default helper client selection'
)

View File

@ -8,19 +8,21 @@ This reverts commit e825fe389ebd63470028abd828019840c1170a03.
This commit will cause waylandsink cannot register pointer seat.
As a result, mouse cannot move waylandsink window
Upstream-Status: Inappropriate [digi 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 4ea89de0..2d7a7d5f 100644
index 31b88ac4..207d0075 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)
@@ -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)
-{
@ -39,44 +41,44 @@ index 4ea89de0..2d7a7d5f 100644
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,
@@ -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);
@@ -146,8 +129,6 @@ handle_pointer_motion_absolute(
@@ -152,8 +135,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,
@@ -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) ||
@@ -260,8 +239,6 @@ handle_pointer_axis(struct libinput_device *libinput_device,
@@ -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,
@@ -738,7 +715,11 @@ evdev_device_create(struct libinput_device *libinput_device,
@@ -1025,7 +1002,11 @@ evdev_device_create(struct libinput_device *libinput_device,
device->seat_caps |= EVDEV_SEAT_KEYBOARD;
}
-

View File

@ -1,7 +1,8 @@
# Copyright (C) 2024 Digi International Inc.
FILESEXTRAPATHS:prepend := "${THISDIR}/${BP}:"
SRC_URI += " \
file://0001-Restore-wl_shell-to-weston-11.patch \
file://0001-Restore-wl_shell-to-weston-12.patch \
file://0002-Revert-libweston-libinput-device-Enable-Set-pointer-.patch \
"