diff --git a/src/Widgets/MultitaskingView/WorkspaceClone.vala b/src/Widgets/MultitaskingView/WorkspaceClone.vala
index 3b0670562..e3d91d1d1 100644
--- a/src/Widgets/MultitaskingView/WorkspaceClone.vala
+++ b/src/Widgets/MultitaskingView/WorkspaceClone.vala
@@ -1,19 +1,8 @@
-//
-// Copyright (C) 2014 Tom Beckmann
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see .
-//
+/*
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ * SPDX-FileCopyrightText: 2014 Tom Beckmann
+ * 2025 elementary, Inc. (https://elementary.io)
+ */
/**
* Utility class which adds a border and a shadow to a Background
@@ -83,7 +72,7 @@ private class Gala.FramedBackground : BackgroundManager {
cached_texture = texture;
}
} catch (Error e) {
- debug (e.message);
+ critical ("FramedBackground: Couldn't create texture: %s", e.message);
}
var color = Cogl.Color.from_4f (1.0f, 1.0f, 1.0f, 25.0f / 255.0f);
@@ -91,8 +80,7 @@ private class Gala.FramedBackground : BackgroundManager {
pipeline.set_color (color);
- unowned var fb = context.get_framebuffer ();
- fb.draw_rectangle (pipeline, 0, 0, width, height);
+ context.get_framebuffer ().draw_rectangle (pipeline, 0, 0, width, height);
}
}
@@ -133,8 +121,6 @@ public class Gala.WorkspaceClone : ActorTarget {
public WindowCloneContainer window_container { get; private set; }
private BackgroundManager background;
- private bool opened;
-
private uint hover_activate_timeout = 0;
public WorkspaceClone (WindowManager wm, Meta.Workspace workspace, float monitor_scale) {
@@ -142,11 +128,8 @@ public class Gala.WorkspaceClone : ActorTarget {
}
construct {
- opened = false;
-
- unowned Meta.Display display = workspace.get_display ();
- var primary_monitor = display.get_primary_monitor ();
- var monitor_geometry = display.get_monitor_geometry (primary_monitor);
+ unowned var display = workspace.get_display ();
+ var monitor_geometry = display.get_monitor_geometry (display.get_primary_monitor ());
var background_click_action = new Clutter.ClickAction ();
background_click_action.clicked.connect (() => activate (true));
@@ -157,7 +140,7 @@ public class Gala.WorkspaceClone : ActorTarget {
width = monitor_geometry.width,
height = monitor_geometry.height,
};
- window_container.window_selected.connect ((w) => { window_selected (w); });
+ window_container.window_selected.connect ((window) => window_selected (window));
window_container.requested_close.connect (() => activate (true));
bind_property ("monitor-scale", window_container, "monitor-scale");
@@ -167,6 +150,7 @@ public class Gala.WorkspaceClone : ActorTarget {
if (!hovered && hover_activate_timeout != 0) {
Source.remove (hover_activate_timeout);
hover_activate_timeout = 0;
+
return;
}
@@ -174,7 +158,8 @@ public class Gala.WorkspaceClone : ActorTarget {
hover_activate_timeout = Timeout.add (HOVER_ACTIVATE_DELAY, () => {
activate (false);
hover_activate_timeout = 0;
- return false;
+
+ return Source.REMOVE;
});
}
});
@@ -182,19 +167,14 @@ public class Gala.WorkspaceClone : ActorTarget {
display.window_entered_monitor.connect (window_entered_monitor);
display.window_left_monitor.connect (window_left_monitor);
workspace.window_added.connect (add_window);
- workspace.window_removed.connect (remove_window);
+ workspace.window_removed.connect (window_container.remove_window);
add_child (background);
add_child (window_container);
// add existing windows
- var windows = workspace.list_windows ();
- foreach (var window in windows) {
- if (window.window_type == Meta.WindowType.NORMAL
- && !window.on_all_workspaces
- && window.is_on_primary_monitor ()) {
- window_container.add_window (window);
- }
+ foreach (var window in workspace.list_windows ()) {
+ add_window (window);
}
var static_windows = StaticWindowContainer.get_instance (display);
@@ -207,54 +187,51 @@ public class Gala.WorkspaceClone : ActorTarget {
}
~WorkspaceClone () {
- unowned Meta.Display display = workspace.get_display ();
+ unowned var display = workspace.get_display ();
display.window_entered_monitor.disconnect (window_entered_monitor);
display.window_left_monitor.disconnect (window_left_monitor);
workspace.window_added.disconnect (add_window);
- workspace.window_removed.disconnect (remove_window);
+ workspace.window_removed.disconnect (window_container.remove_window);
background.destroy ();
window_container.destroy ();
}
/**
- * Add a window to the WindowCloneContainer and the IconGroup if it really
- * belongs to this workspace and this monitor.
+ * Add a window to the WindowCloneContainer if it belongs to this workspace and this monitor.
*/
private void add_window (Meta.Window window) {
- if (window.window_type != Meta.WindowType.NORMAL
- || window.get_workspace () != workspace
- || StaticWindowContainer.get_instance (workspace.get_display ()).is_static (window)
- || !window.is_on_primary_monitor ())
+ if (window.window_type != NORMAL ||
+ window.get_workspace () != workspace ||
+ StaticWindowContainer.get_instance (workspace.get_display ()).is_static (window) ||
+ !window.is_on_primary_monitor ()
+ ) {
return;
+ }
- foreach (var child in window_container.get_children ())
- if (((WindowClone) child).window == window)
+ foreach (var child in (GLib.List) window_container.get_children ()) {
+ if (child.window == window) {
return;
+ }
+ }
window_container.add_window (window);
}
- /**
- * Remove a window from the WindowCloneContainer and the IconGroup
- */
- private void remove_window (Meta.Window window) {
- window_container.remove_window (window);
- }
-
private void window_entered_monitor (Meta.Display display, int monitor, Meta.Window window) {
add_window (window);
}
private void window_left_monitor (Meta.Display display, int monitor, Meta.Window window) {
- if (monitor == display.get_primary_monitor ())
- remove_window (window);
+ if (monitor == display.get_primary_monitor ()) {
+ window_container.remove_window (window);
+ }
}
private void on_window_static_changed (Meta.Window window, bool is_static) {
if (is_static) {
- remove_window (window);
+ window_container.remove_window (window);
} else {
add_window (window);
}
@@ -286,8 +263,7 @@ public class Gala.WorkspaceClone : ActorTarget {
add_target (new PropertyTarget (MULTITASKING_VIEW, background, "scale-y", typeof (double), 1d, (double) scale));
window_container.padding_top = Utils.scale_to_int (TOP_OFFSET, monitor_scale);
- window_container.padding_left =
- window_container.padding_right = (int)(monitor.width - monitor.width * scale) / 2;
+ window_container.padding_left = window_container.padding_right = (int) (monitor.width - monitor.width * scale) / 2;
window_container.padding_bottom = Utils.scale_to_int (BOTTOM_OFFSET, monitor_scale);
}