From 7da85e8b1e5768b516a5c9e5e0a37edffe79bed3 Mon Sep 17 00:00:00 2001 From: Ray Strode Date: Thu, 6 May 2021 14:41:41 -0400 Subject: [PATCH] Fix window ordering bug Resolves: #1957863 --- ...t-the-on-top-windows-actually-on-top.patch | 82 +++++++++++++++++++ gnome-kiosk.spec | 9 +- 2 files changed, 90 insertions(+), 1 deletion(-) create mode 100644 0001-compositor-Put-the-on-top-windows-actually-on-top.patch diff --git a/0001-compositor-Put-the-on-top-windows-actually-on-top.patch b/0001-compositor-Put-the-on-top-windows-actually-on-top.patch new file mode 100644 index 0000000..7fb63e0 --- /dev/null +++ b/0001-compositor-Put-the-on-top-windows-actually-on-top.patch @@ -0,0 +1,82 @@ +From ed8dbeb00ef64faa047652ac7fc9bf029348a6df Mon Sep 17 00:00:00 2001 +From: Ray Strode +Date: Thu, 6 May 2021 14:17:26 -0400 +Subject: [PATCH] compositor: Put the on top windows actually on top + +A typo in the code left me putting new windows under old ones. + +This commit fixes that. +--- + compositor/kiosk-compositor.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/compositor/kiosk-compositor.c b/compositor/kiosk-compositor.c +index 14f5de3..6753a87 100644 +--- a/compositor/kiosk-compositor.c ++++ b/compositor/kiosk-compositor.c +@@ -239,61 +239,61 @@ on_faded_in (KioskCompositor *self, + MetaWindowActor *actor = g_object_get_data (G_OBJECT (transition), "actor"); + + meta_plugin_map_completed (META_PLUGIN (self), actor); + } + + static void + kiosk_compositor_map (MetaPlugin *plugin, + MetaWindowActor *actor) + { + KioskCompositor *self = KIOSK_COMPOSITOR (plugin); + MetaWindow *window; + ClutterTransition *fade_in_transition; + int easing_duration; + + window = meta_window_actor_get_meta_window (actor); + + if (kiosk_compositor_wants_window_fullscreen (self, window)) { + g_debug ("KioskCompositor: Mapping window that does need to be fullscreened"); + meta_window_make_fullscreen (window); + easing_duration = 3000; + } else { + ClutterActor *window_group; + + g_debug ("KioskCompositor: Mapping window that does not need to be fullscreened"); + window_group = meta_get_top_window_group_for_display (self->display); + + if (kiosk_compositor_wants_window_above (self, window)) { + g_object_ref (G_OBJECT (actor)); + clutter_actor_remove_child (clutter_actor_get_parent (CLUTTER_ACTOR (actor)), CLUTTER_ACTOR (actor)); + clutter_actor_add_child (window_group, CLUTTER_ACTOR (actor)); +- clutter_actor_set_child_below_sibling (window_group, CLUTTER_ACTOR (actor), NULL); ++ clutter_actor_set_child_above_sibling (window_group, CLUTTER_ACTOR (actor), NULL); + g_object_unref (G_OBJECT (actor)); + } + + easing_duration = 500; + } + + clutter_actor_show (self->stage); + clutter_actor_show (CLUTTER_ACTOR (actor)); + + clutter_actor_set_opacity (CLUTTER_ACTOR (actor), 0); + + clutter_actor_save_easing_state (CLUTTER_ACTOR (actor)); + clutter_actor_set_easing_duration (CLUTTER_ACTOR (actor), easing_duration); + clutter_actor_set_easing_mode (CLUTTER_ACTOR (actor), CLUTTER_EASE_IN_OUT_QUINT); + clutter_actor_set_opacity (CLUTTER_ACTOR (actor), 255); + fade_in_transition = clutter_actor_get_transition (CLUTTER_ACTOR (actor), "opacity"); + clutter_actor_restore_easing_state (CLUTTER_ACTOR (actor)); + + g_object_set_data (G_OBJECT (fade_in_transition), "actor", actor); + + g_signal_connect_object (G_OBJECT (fade_in_transition), + "completed", + G_CALLBACK (on_faded_in), + self, + G_CONNECT_SWAPPED); + } + + static void + kiosk_compositor_destroy (MetaPlugin *plugin, + MetaWindowActor *actor) +-- +2.31.1 + diff --git a/gnome-kiosk.spec b/gnome-kiosk.spec index 48865b1..f18bbaf 100644 --- a/gnome-kiosk.spec +++ b/gnome-kiosk.spec @@ -12,7 +12,7 @@ Name: gnome-kiosk Version: 40~alpha -Release: 7%{?dist} +Release: 8%{?dist} Summary: Window management and application launching for GNOME License: GPLv2+ @@ -51,6 +51,9 @@ Patch20004: 0004-input-sources-manager-Support-libxklavier-managed-ke.patch # https://gitlab.gnome.org/halfline/gnome-kiosk/-/merge_requests/3 Patch30001: 0001-Make-the-desktop-file-valid.patch +# https://gitlab.gnome.org/halfline/gnome-kiosk/-/merge_requests/4 +Patch40001: 0001-compositor-Put-the-on-top-windows-actually-on-top.patch + %description GNOME Kiosk provides a desktop enviroment suitable for fixed purpose, or single application deployments like wall displays and point-of-sale systems. @@ -93,6 +96,10 @@ desktop-file-validate %{buildroot}%{_datadir}/applications/org.gnome.Kiosk.Searc %{_datadir}/wayland-sessions/org.gnome.Kiosk.SearchApp.Session.desktop %changelog +* Thu May 06 2021 Ray Strode - 40~alpha-8 +- Fix window ordering bug + Resolves: #1957863 + * Tue Apr 27 2021 Ray Strode - 40~alpha-7 - Fix desktop file Resolves: #1954285