Skip to content

Commit 184f762

Browse files
authored
ShadowEffect: cleanup scale factor (#2336)
1 parent 3e68432 commit 184f762

File tree

6 files changed

+13
-16
lines changed

6 files changed

+13
-16
lines changed

lib/ShadowEffect.vala

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,16 +50,17 @@ public class Gala.ShadowEffect : Clutter.Effect {
5050
}
5151
}
5252

53-
public float scale_factor { get; set; default = 1; }
53+
public float monitor_scale { get; construct set; }
54+
5455
public uint8 shadow_opacity { get; set; default = 255; }
5556
public int border_radius { get; set; default = 9;}
5657

5758
private int shadow_size;
5859
private Cogl.Pipeline? pipeline;
5960
private string? current_key = null;
6061

61-
public ShadowEffect (string css_class = "") {
62-
Object (css_class: css_class);
62+
public ShadowEffect (string css_class, float monitor_scale) {
63+
Object (css_class: css_class, monitor_scale: monitor_scale);
6364
}
6465

6566
~ShadowEffect () {
@@ -122,7 +123,7 @@ public class Gala.ShadowEffect : Clutter.Effect {
122123

123124
cr.save ();
124125
cr.set_operator (Cairo.Operator.CLEAR);
125-
var size = shadow_size * scale_factor;
126+
var size = shadow_size * monitor_scale;
126127
Drawing.Utilities.cairo_rounded_rectangle (cr, size, size, actor.width, actor.height, border_radius);
127128
cr.fill ();
128129
cr.restore ();
@@ -161,7 +162,7 @@ public class Gala.ShadowEffect : Clutter.Effect {
161162
}
162163

163164
private Clutter.ActorBox get_bounding_box () {
164-
var size = shadow_size * scale_factor;
165+
var size = shadow_size * monitor_scale;
165166
var bounding_box = Clutter.ActorBox ();
166167

167168
bounding_box.set_origin (-size, -size);

plugins/pip/PopupWindow.vala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public class Gala.Plugins.PIP.PopupWindow : Clutter.Actor {
7878
reactive = true
7979
};
8080
container.add_child (clone_container);
81-
container.add_effect (new ShadowEffect ("window"));
81+
container.add_effect (new ShadowEffect ("window", scale));
8282

8383
move_action = new DragDropAction (DragDropActionType.SOURCE, "pip");
8484
move_action.drag_begin.connect (on_move_begin);

src/Widgets/MultitaskingView/IconGroup.vala

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -235,9 +235,8 @@ public class Gala.IconGroup : CanvasActor {
235235
InternalUtils.scale_to_int (5, scale_factor)
236236
);
237237

238-
var shadow_effect = new ShadowEffect () {
239-
border_radius = InternalUtils.scale_to_int (5, scale_factor),
240-
scale_factor = scale_factor
238+
var shadow_effect = new ShadowEffect ("", scale_factor) {
239+
border_radius = InternalUtils.scale_to_int (5, scale_factor)
241240
};
242241

243242
var style_manager = Drawing.StyleManager.get_instance ();

src/Widgets/MultitaskingView/WindowClone.vala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ public class Gala.WindowClone : ActorTarget {
206206

207207
if (window.fullscreen || window.maximized_horizontally && window.maximized_vertically) {
208208
if (shadow_effect == null) {
209-
shadow_effect = new ShadowEffect ("window");
209+
shadow_effect = new ShadowEffect ("window", monitor_scale_factor);
210210
shadow_opacity = 0;
211211
clone.add_effect_with_name ("shadow", shadow_effect);
212212
}

src/Widgets/MultitaskingView/WorkspaceClone.vala

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,8 @@ private class Gala.FramedBackground : BackgroundManager {
4242
unowned var ctx = Clutter.get_default_backend ().get_cogl_context ();
4343
#endif
4444
pipeline = new Cogl.Pipeline (ctx);
45-
var primary = display.get_primary_monitor ();
46-
var monitor_geom = display.get_monitor_geometry (primary);
4745

48-
var effect = new ShadowEffect ("workspace");
49-
add_effect (effect);
46+
add_effect (new ShadowEffect ("workspace", display.get_monitor_scale (display.get_primary_monitor ())));
5047

5148
reactive = true;
5249
}

src/Widgets/WindowSwitcher/WindowSwitcher.vala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ public class Gala.WindowSwitcher : CanvasActor, GestureTarget {
9999
orientation = VERTICAL
100100
};
101101

102-
shadow_effect = new ShadowEffect ("window-switcher") {
102+
shadow_effect = new ShadowEffect ("window-switcher", scaling_factor) {
103103
border_radius = InternalUtils.scale_to_int (9, scaling_factor),
104104
shadow_opacity = 100
105105
};
@@ -121,7 +121,7 @@ public class Gala.WindowSwitcher : CanvasActor, GestureTarget {
121121
private void scale () {
122122
scaling_factor = wm.get_display ().get_monitor_scale (wm.get_display ().get_current_monitor ());
123123

124-
shadow_effect.scale_factor = scaling_factor;
124+
shadow_effect.monitor_scale = scaling_factor;
125125

126126
var margin = InternalUtils.scale_to_int (WRAPPER_PADDING, scaling_factor);
127127

0 commit comments

Comments
 (0)