xref: /OK3568_Linux_fs/buildroot/package/weston/0026-Avoid-adding-views-to-other-outputs.patch (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1From f4dea99ef832601fea53137c0bc9843182b796df Mon Sep 17 00:00:00 2001
2From: Jeffy Chen <jeffy.chen@rock-chips.com>
3Date: Sat, 7 May 2022 16:41:20 +0800
4Subject: [PATCH 26/93] Avoid adding views to other outputs
5
6The outputs can be overlapped now.
7
8Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
9---
10 libweston/compositor.c | 5 +++++
11 1 file changed, 5 insertions(+)
12
13diff --git a/libweston/compositor.c b/libweston/compositor.c
14index 306b2c6..2e56db2 100644
15--- a/libweston/compositor.c
16+++ b/libweston/compositor.c
17@@ -1323,6 +1323,7 @@ weston_view_set_output(struct weston_view *view, struct weston_output *output)
18 	}
19 	view->output = output;
20 	if (output) {
21+		view->output_mask = output->id;
22 		view->output_destroy_listener.notify =
23 			notify_view_output_destroy;
24 		wl_signal_add(&output->destroy_signal,
25@@ -3169,6 +3170,10 @@ view_list_add(struct weston_compositor *compositor,
26 	struct weston_paint_node *pnode;
27 	struct weston_subsurface *sub;
28
29+	/* HACK: Avoid adding views to other outputs */
30+	if (output && !(view->output_mask & 1 << output->id))
31+		output = NULL;
32+
33 	weston_view_update_transform(view);
34
35 	/* It is possible for a view to appear in the layer list even though
36--
372.20.1
38
39