summaryrefslogtreecommitdiff
path: root/kiosk-shell
diff options
context:
space:
mode:
authorMarius Vlad <marius.vlad@collabora.com>2021-12-09 12:22:53 +0200
committerDaniel Stone <daniels@collabora.com>2022-02-03 15:37:03 +0000
commitf3ad5939255daf0d39c9d53605e678f4e0ece968 (patch)
tree58afaabdd1a06e0bdd71877128e8eb6a9c27ce0f /kiosk-shell
parent8a1849db8a3e1d1e3bc5da33d5b78f600fe19fe7 (diff)
downloadweston-f3ad5939255daf0d39c9d53605e678f4e0ece968.tar.gz
kiosk-shell: Don't occlude shsurf on other outputs
This adds an additional check to make sure the current focus surface is on the same output as the surface that is going to be activated. This is necessary in order to avoid placing the currently focused one in the inactive layer, which shouldn't happen in situations where the new surface is going to be placed on a different output than the currently focused one. Signed-off-by: Marius Vlad <marius.vlad@collabora.com>
Diffstat (limited to 'kiosk-shell')
-rw-r--r--kiosk-shell/kiosk-shell.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/kiosk-shell/kiosk-shell.c b/kiosk-shell/kiosk-shell.c
index 477c85c3..b63116c8 100644
--- a/kiosk-shell/kiosk-shell.c
+++ b/kiosk-shell/kiosk-shell.c
@@ -390,8 +390,10 @@ kiosk_shell_surface_activate(struct kiosk_shell_surface *shsurf,
/* removes it from the normal_layer and move it to inactive
* one, without occluding the top-level window if the new one
- * is a child to that */
- if (!shsurf->parent) {
+ * is a child to that. Also, do not occlude another view
+ * (currently focused one) on a different output when activating
+ * a new one. */
+ if (!shsurf->parent && (shsurf->output == current_focus->output)) {
weston_layer_entry_remove(&current_focus->view->layer_link);
weston_layer_entry_insert(&shsurf->shell->inactive_layer.view_list,
&current_focus->view->layer_link);