Skip to content

Commit 80c2131

Browse files
committed
Cleanup and scale corners
1 parent 9d4e193 commit 80c2131

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

src/BackgroundBlurEffect.vala

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -334,8 +334,8 @@ public class Gala.BackgroundBlurEffect : Clutter.Effect {
334334

335335
private Clutter.PaintNode create_blur_nodes (Clutter.PaintNode node) {
336336
var blur_node = new Clutter.BlurNode (
337-
(uint) (round_texture.get_width () / downscale_factor),
338-
(uint) (round_texture.get_height () / downscale_factor),
337+
round_texture.get_width (),
338+
round_texture.get_height (),
339339
real_blur_radius / downscale_factor
340340
);
341341
blur_node.add_rectangle ({
@@ -366,15 +366,16 @@ public class Gala.BackgroundBlurEffect : Clutter.Effect {
366366
/* Background layer node */
367367
var background_node = new Clutter.LayerNode.to_framebuffer (background_framebuffer, background_pipeline);
368368
node.add_child (background_node);
369-
background_node.add_rectangle ({ 0.0f, 0.0f, background_texture.get_width () / downscale_factor, background_texture.get_height () / downscale_factor });
369+
background_node.add_rectangle ({ 0.0f, 0.0f, background_texture.get_width (), background_texture.get_height () });
370370

371371
/* Blit node */
372372
var blit_node = new Clutter.BlitNode (paint_context.get_framebuffer ());
373373
background_node.add_child (blit_node);
374374
blit_node.add_blit_rectangle (
375375
(int) (transformed_x + left),
376376
(int) (transformed_y + top),
377-
0, 0,
377+
0,
378+
0,
378379
(int) background_texture.get_width (),
379380
(int) background_texture.get_height ()
380381
);

src/BlurManager.vala

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,13 @@ public class Gala.BlurManager : Object {
4242
window.notify["mutter-hints"].connect ((obj, pspec) => parse_mutter_hints ((Meta.Window) obj));
4343
parse_mutter_hints (window);
4444
});
45+
46+
unowned var monitor_manager = wm.get_display ().get_context ().get_backend ().get_monitor_manager ();
47+
monitor_manager.monitors_changed.connect (() => {
48+
foreach (unowned var window in blurred_windows.get_keys ()) {
49+
blurred_windows[window].blur_effect.monitor_scale = window.display.get_monitor_scale (window.get_monitor ());
50+
}
51+
});
4552
}
4653

4754
/**
@@ -54,25 +61,30 @@ public class Gala.BlurManager : Object {
5461
return;
5562
}
5663

57-
var buffer_rect = window.get_buffer_rect ();
58-
var frame_rect = window.get_frame_rect ();
59-
var left_shadow_size = frame_rect.x - buffer_rect.x;
60-
var right_shadow_size = buffer_rect.width - frame_rect.width - left_shadow_size;
61-
var top_shadow_size = frame_rect.y - buffer_rect.y;
62-
var bottom_shadow_size = buffer_rect.height - frame_rect.height - top_shadow_size;
63-
6464
var blur_data = blurred_windows[window];
6565
if (blur_data == null) {
66-
var blur_effect = new BackgroundBlurEffect (BLUR_RADIUS, (int) clip_radius, 1.0f);
66+
var blur_effect = new BackgroundBlurEffect (
67+
BLUR_RADIUS,
68+
(int) clip_radius,
69+
window.display.get_monitor_scale (window.get_monitor ())
70+
);
6771

6872
window_actor.add_effect (blur_effect);
6973

7074
blur_data = { blur_effect, left, right, top, bottom, clip_radius };
7175
blurred_windows[window] = blur_data;
7276

77+
// TODO: We can require users of blur API to calculate shadow_size themselves and remove connecting to this
7378
window.size_changed.connect (on_size_changed);
7479
}
7580

81+
var buffer_rect = window.get_buffer_rect ();
82+
var frame_rect = window.get_frame_rect ();
83+
var left_shadow_size = frame_rect.x - buffer_rect.x;
84+
var right_shadow_size = buffer_rect.width - frame_rect.width - left_shadow_size;
85+
var top_shadow_size = frame_rect.y - buffer_rect.y;
86+
var bottom_shadow_size = buffer_rect.height - frame_rect.height - top_shadow_size;
87+
7688
blur_data.blur_effect.left = left_shadow_size + left;
7789
blur_data.blur_effect.right = right_shadow_size + right;
7890
blur_data.blur_effect.top = top_shadow_size + top;

0 commit comments

Comments
 (0)