33 * Copyright 2020 Mark Story <[email protected] > 44 * Copyright 2017 Popye <[email protected] > 55 * Copyright 2014 Tom Beckmann
6- * Copyright 2023 elementary, Inc. <https://elementary.io>
6+ * Copyright 2023-2025 elementary, Inc. <https://elementary.io>
77 * SPDX-License-Identifier: GPL-3.0-or-later
88 */
99
1010public class Gala.WindowSwitcher : CanvasActor , GestureTarget , RootTarget {
11- public const int ICON_SIZE = 64 ;
1211 public const int WRAPPER_PADDING = 12 ;
1312
1413 private const string CAPTION_FONT_NAME = " Inter" ;
1514 private const int MIN_OFFSET = 64 ;
16- private const int ANIMATION_DURATION = 200 ;
1715 private const double GESTURE_STEP = 0.1 ;
1816
1917 public WindowManager wm { get ; construct; }
@@ -45,7 +43,8 @@ public class Gala.WindowSwitcher : CanvasActor, GestureTarget, RootTarget {
4543 _current_icon. grab_key_focus ();
4644 }
4745
48- update_caption_text ();
46+ var current_window = _current_icon != null ? _current_icon. window : null ;
47+ caption. text = current_window != null ? current_window. title : " n/a" ;
4948 }
5049 }
5150
@@ -117,7 +116,8 @@ public class Gala.WindowSwitcher : CanvasActor, GestureTarget, RootTarget {
117116 }
118117
119118 private void scale () {
120- scaling_factor = wm. get_display (). get_monitor_scale (wm. get_display (). get_current_monitor ());
119+ unowned var display = wm. get_display ();
120+ scaling_factor = display. get_monitor_scale (display. get_current_monitor ());
121121
122122 shadow_effect. monitor_scale = scaling_factor;
123123
@@ -140,15 +140,14 @@ public class Gala.WindowSwitcher : CanvasActor, GestureTarget, RootTarget {
140140 base . get_preferred_width (for_height, null , out preferred_nat_width);
141141
142142 unowned var display = wm. get_display ();
143- var monitor = display. get_current_monitor ();
144- var geom = display. get_monitor_geometry (monitor);
143+ var geom = display. get_monitor_geometry (display. get_current_monitor ());
145144
146145 float container_nat_width;
147146 container. get_preferred_size (null , null , out container_nat_width, null );
148147
149148 var max_width = float . min (
150- geom. width - Utils . scale_to_int (MIN_OFFSET , scaling_factor) * 2 , // Don't overflow the monitor
151- container_nat_width // Ellipsize the label if it's longer than the icons
149+ geom. width - Utils . scale_to_int (MIN_OFFSET * 2 , scaling_factor), // Don't overflow the monitor
150+ container_nat_width // Ellipsize the label if it's longer than the icons
152151 );
153152
154153 natural_width = float . min (max_width, preferred_nat_width);
@@ -268,7 +267,6 @@ public class Gala.WindowSwitcher : CanvasActor, GestureTarget, RootTarget {
268267 }
269268 }
270269
271- [CCode (instance_pos = -1 )]
272270 public void handle_switch_windows (
273271 Meta .Display display , Meta .Window ? window ,
274272 Clutter .KeyEvent ? event , Meta .KeyBinding binding
@@ -339,7 +337,7 @@ public class Gala.WindowSwitcher : CanvasActor, GestureTarget, RootTarget {
339337
340338 unowned var current_window = display. get_tab_current (Meta . TabList . NORMAL , workspace);
341339 foreach (unowned var window in windows) {
342- var icon = new WindowSwitcherIcon (window, ICON_SIZE , scaling_factor);
340+ var icon = new WindowSwitcherIcon (window, scaling_factor);
343341 add_icon (icon);
344342
345343 if (window == current_window) {
@@ -368,7 +366,7 @@ public class Gala.WindowSwitcher : CanvasActor, GestureTarget, RootTarget {
368366 var app = window_tracker. get_app_for_window (current_window);
369367 foreach (unowned var window in windows) {
370368 if (window_tracker. get_app_for_window (window) == app) {
371- var icon = new WindowSwitcherIcon (window, ICON_SIZE , scaling_factor);
369+ var icon = new WindowSwitcherIcon (window, scaling_factor);
372370 add_icon (icon);
373371
374372 if (window == current_window) {
@@ -394,8 +392,10 @@ public class Gala.WindowSwitcher : CanvasActor, GestureTarget, RootTarget {
394392 }
395393
396394 private void open_switcher () {
395+ unowned var display = wm. get_display ();
396+
397397 if (container. get_n_children () == 0 ) {
398- InternalUtils . bell_notify (wm . get_display () );
398+ InternalUtils . bell_notify (display );
399399 return ;
400400 }
401401
@@ -410,9 +410,7 @@ public class Gala.WindowSwitcher : CanvasActor, GestureTarget, RootTarget {
410410 float width, height;
411411 get_preferred_size (null , null , out width, out height);
412412
413- unowned var display = wm. get_display ();
414- var monitor = display. get_current_monitor ();
415- var geom = display. get_monitor_geometry (monitor);
413+ var geom = display. get_monitor_geometry (display. get_current_monitor ());
416414
417415 set_position (
418416 (int ) (geom. x + (geom. width - width) / 2 ),
@@ -436,7 +434,7 @@ public class Gala.WindowSwitcher : CanvasActor, GestureTarget, RootTarget {
436434 }
437435
438436 save_easing_state ();
439- set_easing_duration (Utils . get_animation_duration (ANIMATION_DURATION ));
437+ set_easing_duration (Utils . get_animation_duration (AnimationDuration . HIDE ));
440438 opacity = show ? 255 : 0 ;
441439 restore_easing_state ();
442440 }
@@ -486,12 +484,6 @@ public class Gala.WindowSwitcher : CanvasActor, GestureTarget, RootTarget {
486484 gesture_controller. progress + = backward ? - GESTURE_STEP : GESTURE_STEP ;
487485 }
488486
489- private void update_caption_text () {
490- var current_window = current_icon != null ? current_icon. window : null ;
491- var current_caption = current_window != null ? current_window. title : " n/a" ;
492- caption. set_text (current_caption);
493- }
494-
495487 public override void key_focus_out () {
496488 if (! gesture_controller. recognizing) {
497489 close_switcher (wm. get_display (). get_current_time ());
0 commit comments