From 4f4171192b5271d189f892060ebd638ea1ee784b Mon Sep 17 00:00:00 2001 From: lenemter Date: Sat, 18 Oct 2025 13:17:33 +0300 Subject: [PATCH 1/3] Use WorkspaceGestureController --- src/ShellClients/PanelWindow.vala | 19 ++++++++++++------- src/ShellClients/ShellClientsManager.vala | 6 +++--- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/ShellClients/PanelWindow.vala b/src/ShellClients/PanelWindow.vala index b18b7e91c..7b7430f78 100644 --- a/src/ShellClients/PanelWindow.vala +++ b/src/ShellClients/PanelWindow.vala @@ -119,9 +119,15 @@ public class Gala.PanelWindow : ShellWindow, RootTarget { actor.add_action (new DragDropAction (DESTINATION, "multitaskingview-window")); } + public void animate_start () { + starting = false; + workspace_hide_tracker.recalculate_all_workspaces (); + } + protected override double get_hidden_progress () { if (starting) { - return user_gesture_controller.progress; + // Don't show when starting + return 1.0; } var user_workspace_hidden_progress = double.min ( @@ -139,22 +145,21 @@ public class Gala.PanelWindow : ShellWindow, RootTarget { public override void propagate (GestureTarget.UpdateType update_type, GestureAction action, double progress) { workspace_hide_tracker.update (update_type, action, progress); base.propagate (update_type, action, progress); - - if (starting && update_type == END && action == CUSTOM) { - // We were shown for the first time, so we can leave the special starting state - starting = false; - } } private void hide () { user_gesture_controller.goto (1); } - public void show () { + private void show () { user_gesture_controller.goto (0); } private bool update_overlap (Meta.Workspace workspace) { + if (starting) { + return true; + } + var overlap = false; var focus_overlap = false; var focus_maximized_overlap = false; diff --git a/src/ShellClients/ShellClientsManager.vala b/src/ShellClients/ShellClientsManager.vala index 3320f12d6..988ba69dd 100644 --- a/src/ShellClients/ShellClientsManager.vala +++ b/src/ShellClients/ShellClientsManager.vala @@ -117,7 +117,7 @@ public class Gala.ShellClientsManager : Object, GestureTarget { starting_panels = 0; foreach (var window in panel_windows.get_values ()) { - window.show (); + window.animate_start (); } } } @@ -185,7 +185,7 @@ public class Gala.ShellClientsManager : Object, GestureTarget { private void on_panel_ready (Meta.WindowActor actor) { if (starting_panels == 0) { - panel_windows[actor.meta_window].show (); + panel_windows[actor.meta_window].animate_start (); return; } @@ -194,7 +194,7 @@ public class Gala.ShellClientsManager : Object, GestureTarget { if (starting_panels == 0) { foreach (var window in panel_windows.get_values ()) { - window.show (); + window.animate_start (); } } } From f13ebfaf59487c122ff5d60706856816792f4807 Mon Sep 17 00:00:00 2001 From: lenemter Date: Sat, 18 Oct 2025 13:22:23 +0300 Subject: [PATCH 2/3] Fix --- src/ShellClients/PanelWindow.vala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/ShellClients/PanelWindow.vala b/src/ShellClients/PanelWindow.vala index 7b7430f78..f027550b6 100644 --- a/src/ShellClients/PanelWindow.vala +++ b/src/ShellClients/PanelWindow.vala @@ -69,7 +69,9 @@ public class Gala.PanelWindow : ShellWindow, RootTarget { hide_tracker.hide.connect (hide); hide_tracker.show.connect (show); - workspace_gesture_controller = new GestureController (CUSTOM, wm); + workspace_gesture_controller = new GestureController (CUSTOM, wm) { + progress = 1.0 + }; workspace_hide_tracker = new WorkspaceHideTracker (window.display, update_overlap); workspace_hide_tracker.switching_workspace_progress_updated.connect ((value) => workspace_gesture_controller.progress = value); From daa2a3fc3aa3e4f4adfea9ea523ff55c2356d487 Mon Sep 17 00:00:00 2001 From: lenemter Date: Sun, 19 Oct 2025 19:39:32 +0300 Subject: [PATCH 3/3] Don't disallow reveal with barrier --- src/ShellClients/PanelWindow.vala | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/ShellClients/PanelWindow.vala b/src/ShellClients/PanelWindow.vala index f027550b6..4a0236644 100644 --- a/src/ShellClients/PanelWindow.vala +++ b/src/ShellClients/PanelWindow.vala @@ -127,11 +127,6 @@ public class Gala.PanelWindow : ShellWindow, RootTarget { } protected override double get_hidden_progress () { - if (starting) { - // Don't show when starting - return 1.0; - } - var user_workspace_hidden_progress = double.min ( user_gesture_controller.progress, workspace_gesture_controller.progress