Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/Widgets/WindowSwitcher/WindowSwitcher.vala
Original file line number Diff line number Diff line change
Expand Up @@ -342,6 +342,7 @@ public class Gala.WindowSwitcher : CanvasActor, GestureTarget, RootTarget {
unowned var current_window = display.get_tab_current (Meta.TabList.NORMAL, workspace);
foreach (unowned var window in windows) {
var icon = new WindowSwitcherIcon (window, scaling_factor);
bind_property ("monitor-scale", icon, "monitor-scale");
add_icon (icon);

if (window == current_window) {
Expand Down Expand Up @@ -371,6 +372,7 @@ public class Gala.WindowSwitcher : CanvasActor, GestureTarget, RootTarget {
foreach (unowned var window in windows) {
if (window_tracker.get_app_for_window (window) == app) {
var icon = new WindowSwitcherIcon (window, scaling_factor);
bind_property ("monitor-scale", icon, "monitor-scale");
add_icon (icon);

if (window == current_window) {
Expand Down
42 changes: 21 additions & 21 deletions src/Widgets/WindowSwitcher/WindowSwitcherIcon.vala
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,7 @@ public class Gala.WindowSwitcherIcon : Clutter.Actor {
private const int WRAPPER_BORDER_RADIUS = 3;

public Meta.Window window { get; construct; }

private WindowIcon icon;
private RoundedCornersEffect rounded_corners_effect;

public float monitor_scale { get; construct set; }
public bool selected {
set {
if (value) {
Expand All @@ -25,34 +22,37 @@ public class Gala.WindowSwitcherIcon : Clutter.Actor {
}
}

public float scale_factor {
set {
var margin = Utils.scale_to_int (WindowSwitcher.WRAPPER_PADDING, value);
icon.margin_top = margin;
icon.margin_right = margin;
icon.margin_bottom = margin;
icon.margin_left = margin;

rounded_corners_effect.monitor_scale = value;
}
public WindowSwitcherIcon (Meta.Window window, float monitor_scale) {
Object (window: window, monitor_scale: monitor_scale);
}

public WindowSwitcherIcon (Meta.Window window, float scale_factor) {
Object (window: window);

construct {
layout_manager = new Clutter.BinLayout ();
reactive = true;

icon = new WindowIcon (window, Utils.scale_to_int (ICON_SIZE, scale_factor));
add_child (icon);
reload_icon ();

rounded_corners_effect = new RoundedCornersEffect (WRAPPER_BORDER_RADIUS, scale_factor);
var rounded_corners_effect = new RoundedCornersEffect (WRAPPER_BORDER_RADIUS, monitor_scale);
bind_property ("monitor-scale", rounded_corners_effect, "monitor-scale");
add_effect (rounded_corners_effect);

get_accessible ().accessible_name = window.title;
get_accessible ().accessible_role = LIST_ITEM;
get_accessible ().notify_state_change (Atk.StateType.FOCUSABLE, true);

this.scale_factor = scale_factor;
notify["monitor-scale"].connect (reload_icon);
}

private void reload_icon () {
remove_all_children ();

var margin = Utils.scale_to_int (WindowSwitcher.WRAPPER_PADDING, monitor_scale);
var icon = new WindowIcon (window, Utils.scale_to_int (ICON_SIZE, monitor_scale)) {
margin_top = margin,
margin_right = margin,
margin_bottom = margin,
margin_left = margin
};
add_child (icon);
}
}