From 86293d44c11d637c44c5d8bd52b43887678465b4 Mon Sep 17 00:00:00 2001 From: Leo Date: Fri, 27 Oct 2023 02:45:44 +0900 Subject: [PATCH] Background: respect animations key (#1779) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Danielle Foré --- src/Background/BackgroundContainer.vala | 14 +++++++------- src/Background/BackgroundManager.vala | 12 +++++++----- src/Widgets/MonitorClone.vala | 2 +- src/Widgets/WorkspaceClone.vala | 14 +++++++++----- src/WindowManager.vala | 2 +- 5 files changed, 25 insertions(+), 19 deletions(-) diff --git a/src/Background/BackgroundContainer.vala b/src/Background/BackgroundContainer.vala index 835c6f15..2ade91ea 100644 --- a/src/Background/BackgroundContainer.vala +++ b/src/Background/BackgroundContainer.vala @@ -20,14 +20,14 @@ namespace Gala { public signal void changed (); public signal void show_background_menu (int x, int y); - public Meta.Display display { get; construct; } + public WindowManager wm { get; construct; } - public BackgroundContainer (Meta.Display display) { - Object (display: display); + public BackgroundContainer (WindowManager wm) { + Object (wm: wm); } construct { - unowned var monitor_manager = display.get_context ().get_backend ().get_monitor_manager (); + unowned var monitor_manager = wm.get_display ().get_context ().get_backend ().get_monitor_manager (); monitor_manager.monitors_changed.connect (update); reactive = true; @@ -43,7 +43,7 @@ namespace Gala { } ~BackgroundContainer () { - unowned var monitor_manager = display.get_context ().get_backend ().get_monitor_manager (); + unowned var monitor_manager = wm.get_display ().get_context ().get_backend ().get_monitor_manager (); monitor_manager.monitors_changed.disconnect (update); } @@ -54,8 +54,8 @@ namespace Gala { destroy_all_children (); - for (var i = 0; i < display.get_n_monitors (); i++) { - var background = new BackgroundManager (display, i); + for (var i = 0; i < wm.get_display ().get_n_monitors (); i++) { + var background = new BackgroundManager (wm, i); add_child (background); diff --git a/src/Background/BackgroundManager.vala b/src/Background/BackgroundManager.vala index d2c1edb4..44c797f3 100644 --- a/src/Background/BackgroundManager.vala +++ b/src/Background/BackgroundManager.vala @@ -22,7 +22,7 @@ namespace Gala { public signal void changed (); - public Meta.Display display { get; construct; } + public WindowManager wm { get; construct; } public int monitor_index { get; construct; } public bool control_position { get; construct; } @@ -30,12 +30,12 @@ namespace Gala { private Meta.BackgroundActor background_actor; private Meta.BackgroundActor? new_background_actor = null; - public BackgroundManager (Meta.Display display, int monitor_index, bool control_position = true) { - Object (display: display, monitor_index: monitor_index, control_position: control_position); + public BackgroundManager (WindowManager wm, int monitor_index, bool control_position = true) { + Object (wm: wm, monitor_index: monitor_index, control_position: control_position); } construct { - background_source = BackgroundCache.get_default ().get_background_source (display); + background_source = BackgroundCache.get_default ().get_background_source (wm.get_display ()); background_actor = create_background_actor (); destroy.connect (on_destroy); @@ -66,7 +66,7 @@ namespace Gala { if (old_background_actor == null) return; - if (animate) { + if (animate && wm.enable_animations) { var transition = new Clutter.PropertyTransition ("opacity"); transition.set_from_value (255); transition.set_to_value (0); @@ -125,6 +125,8 @@ namespace Gala { } private Meta.BackgroundActor create_background_actor () { + unowned var display = wm.get_display (); + var background = background_source.get_background (monitor_index); var background_actor = new Meta.BackgroundActor (display, monitor_index); diff --git a/src/Widgets/MonitorClone.vala b/src/Widgets/MonitorClone.vala index 24a6317b..f4cd688c 100644 --- a/src/Widgets/MonitorClone.vala +++ b/src/Widgets/MonitorClone.vala @@ -41,7 +41,7 @@ namespace Gala { construct { reactive = true; - background = new BackgroundManager (display, monitor, false); + background = new BackgroundManager (wm, monitor, false); var scale = display.get_monitor_scale (monitor); diff --git a/src/Widgets/WorkspaceClone.vala b/src/Widgets/WorkspaceClone.vala index c86fb47b..25dceb50 100644 --- a/src/Widgets/WorkspaceClone.vala +++ b/src/Widgets/WorkspaceClone.vala @@ -27,14 +27,18 @@ namespace Gala { private int last_width; private int last_height; - public FramedBackground (Meta.Display display) { - Object (display: display, monitor_index: display.get_primary_monitor (), control_position: false); + public FramedBackground (WindowManager wm) { + Object ( + wm: wm, + monitor_index: wm.get_display ().get_primary_monitor (), + control_position: false + ); } construct { pipeline = new Cogl.Pipeline (Clutter.get_default_backend ().get_cogl_context ()); - var primary = display.get_primary_monitor (); - var monitor_geom = display.get_monitor_geometry (primary); + var primary = wm.get_display ().get_primary_monitor (); + var monitor_geom = wm.get_display ().get_monitor_geometry (primary); var effect = new ShadowEffect (40) { css_class = "workspace" @@ -175,7 +179,7 @@ namespace Gala { background_click_action.clicked.connect (() => { selected (true); }); - background = new FramedBackground (display); + background = new FramedBackground (wm); background.add_action (background_click_action); window_container = new WindowCloneContainer (wm, gesture_tracker, scale_factor); diff --git a/src/WindowManager.vala b/src/WindowManager.vala index 35a0101e..4aad7279 100644 --- a/src/WindowManager.vala +++ b/src/WindowManager.vala @@ -238,7 +238,7 @@ namespace Gala { stage.remove_child (window_group); ui_group.add_child (window_group); - background_group = new BackgroundContainer (display); + background_group = new BackgroundContainer (this); ((BackgroundContainer)background_group).show_background_menu.connect (on_show_background_menu); window_group.add_child (background_group); window_group.set_child_below_sibling (background_group, null);