diff --git a/src/Widgets/MultitaskingView/WindowCloneContainer.vala b/src/Widgets/MultitaskingView/WindowCloneContainer.vala index 9b1e76a20..0d34425e7 100644 --- a/src/Widgets/MultitaskingView/WindowCloneContainer.vala +++ b/src/Widgets/MultitaskingView/WindowCloneContainer.vala @@ -11,10 +11,7 @@ public class Gala.WindowCloneContainer : ActorTarget { public signal void window_selected (Meta.Window window); public signal void requested_close (); - public int padding_top { get; set; default = 12; } - public int padding_left { get; set; default = 12; } - public int padding_right { get; set; default = 12; } - public int padding_bottom { get; set; default = 12; } + public Mtk.Rectangle area { get; set; } public WindowManager wm { get; construct; } public WindowListModel windows { get; construct; } @@ -140,13 +137,6 @@ public class Gala.WindowCloneContainer : ActorTarget { return (int) (seq_b - seq_a); }); - Mtk.Rectangle area = { - padding_left, - padding_top, - (int) width - padding_left - padding_right, - (int) height - padding_top - padding_bottom - }; - foreach (var tilable in calculate_grid_placement (area, windows)) { tilable.clone.take_slot (tilable.rect, !view_toggle); } diff --git a/src/Widgets/MultitaskingView/WorkspaceClone.vala b/src/Widgets/MultitaskingView/WorkspaceClone.vala index 6d9132a15..76c073daf 100644 --- a/src/Widgets/MultitaskingView/WorkspaceClone.vala +++ b/src/Widgets/MultitaskingView/WorkspaceClone.vala @@ -183,6 +183,8 @@ public class Gala.WorkspaceClone : ActorTarget { } }); + clip_to_allocation = true; + add_child (background); add_child (window_container); @@ -234,18 +236,27 @@ public class Gala.WorkspaceClone : ActorTarget { var scale = (float)(monitor.height - Utils.scale_to_int (TOP_OFFSET + BOTTOM_OFFSET, monitor_scale)) / monitor.height; var pivot_y = Utils.scale_to_int (TOP_OFFSET, monitor_scale) / (monitor.height - monitor.height * scale); - background.set_pivot_point (0.5f, pivot_y); + background.set_pivot_point (0f, pivot_y); var initial_width = monitor.width; - var target_width = monitor.width * scale + WorkspaceRow.WORKSPACE_GAP * 2; + var target_width = monitor.width * scale; + + var target_height = monitor.height * scale; - add_target (new PropertyTarget (MULTITASKING_VIEW, this, "width", typeof (float), (float) initial_width, (float) target_width)); + add_target (new PropertyTarget (MULTITASKING_VIEW, window_container, "width", typeof (float), (float) initial_width, (float) target_width)); + add_target (new PropertyTarget (MULTITASKING_VIEW, this, "width", typeof (float), (float) initial_width + WorkspaceRow.WORKSPACE_GAP, (float) target_width + WorkspaceRow.WORKSPACE_GAP)); add_target (new PropertyTarget (MULTITASKING_VIEW, background, "scale-x", typeof (double), 1d, (double) scale)); 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_bottom = Utils.scale_to_int (BOTTOM_OFFSET, monitor_scale); + background.x = WorkspaceRow.WORKSPACE_GAP / 2; + window_container.x = WorkspaceRow.WORKSPACE_GAP / 2; + + window_container.area = { + 12, + Utils.scale_to_int (TOP_OFFSET, monitor_scale), + (int) (target_width - 24), + (int) target_height + }; } #if OLD_ICON_GROUPS diff --git a/src/Widgets/MultitaskingView/WorkspaceRow.vala b/src/Widgets/MultitaskingView/WorkspaceRow.vala index 1398a2361..61a56ab56 100644 --- a/src/Widgets/MultitaskingView/WorkspaceRow.vala +++ b/src/Widgets/MultitaskingView/WorkspaceRow.vala @@ -23,12 +23,13 @@ public class Gala.WorkspaceRow : ActorTarget { set_allocation (allocation); double progress = get_current_progress (SWITCH_WORKSPACE); + var monitor_width = display.get_monitor_geometry (display.get_primary_monitor ()).width; int index = 0; for (var child = get_first_child (); child != null; child = child.get_next_sibling ()) { float preferred_width; child.get_preferred_width (-1, null, out preferred_width); - var child_x = (float) Math.round ((progress + index) * (preferred_width + WORKSPACE_GAP)); + var child_x = (float) Math.round ((progress + index) * preferred_width + (monitor_width - preferred_width) / 2); child.allocate_preferred_size (child_x, 0); diff --git a/src/Widgets/WindowOverview.vala b/src/Widgets/WindowOverview.vala index 5f2f09e4e..c212bbc87 100644 --- a/src/Widgets/WindowOverview.vala +++ b/src/Widgets/WindowOverview.vala @@ -120,10 +120,7 @@ public class Gala.WindowOverview : ActorTarget, RootTarget, ActivatableComponent model.items_changed.connect (on_items_changed); window_clone_container = new WindowCloneContainer (wm, model, scale, true) { - padding_top = TOP_GAP, - padding_left = BORDER, - padding_right = BORDER, - padding_bottom = BOTTOM_GAP, + area = { BORDER, TOP_GAP, geometry.width - 2 * BORDER, geometry.height - TOP_GAP - BOTTOM_GAP }, width = geometry.width, height = geometry.height, x = geometry.x,