Skip to content

Commit 1d132d2

Browse files
authored
Merge branch 'main' into lenemter/scale-tooltip-corner-radius
2 parents 6d68b77 + d23fdb8 commit 1d132d2

File tree

2 files changed

+27
-24
lines changed

2 files changed

+27
-24
lines changed

lib/CloseButton.vala

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -8,20 +8,21 @@ public class Gala.CloseButton : Clutter.Actor {
88
private static Gee.HashMap<int, Gdk.Pixbuf?> close_pixbufs;
99

1010
public signal void triggered (uint32 timestamp);
11-
public float scale { get; construct set; }
11+
12+
public float monitor_scale { get; construct set; }
1213

1314
// used to avoid changing hitbox of the button
1415
private Clutter.Actor pixbuf_actor;
1516
private bool is_pressed = false;
1617

17-
public CloseButton (float scale) {
18-
Object (scale: scale);
19-
}
20-
2118
static construct {
2219
close_pixbufs = new Gee.HashMap<int, Gdk.Pixbuf?> ();
2320
}
2421

22+
public CloseButton (float monitor_scale) {
23+
Object (monitor_scale: monitor_scale);
24+
}
25+
2526
construct {
2627
reactive = true;
2728

@@ -30,23 +31,24 @@ public class Gala.CloseButton : Clutter.Actor {
3031
};
3132
add_child (pixbuf_actor);
3233

33-
var pixbuf = get_close_button_pixbuf (scale);
34+
load_pixbuf ();
35+
notify["monitor-scale"].connect (load_pixbuf);
36+
}
37+
38+
private void load_pixbuf () {
39+
var pixbuf = get_close_button_pixbuf (monitor_scale);
3440
if (pixbuf != null) {
35-
try {
36-
var image = new Gala.Image.from_pixbuf (pixbuf);
37-
pixbuf_actor.set_content (image);
38-
pixbuf_actor.set_size (pixbuf.width, pixbuf.height);
39-
set_size (pixbuf.width, pixbuf.height);
40-
} catch (Error e) {
41-
create_error_texture ();
42-
}
41+
var image = new Gala.Image.from_pixbuf (pixbuf);
42+
pixbuf_actor.set_content (image);
43+
pixbuf_actor.set_size (pixbuf.width, pixbuf.height);
44+
set_size (pixbuf.width, pixbuf.height);
4345
} else {
4446
create_error_texture ();
4547
}
4648
}
4749

48-
private static Gdk.Pixbuf? get_close_button_pixbuf (float scale) {
49-
var height = Utils.calculate_button_size (scale);
50+
private static Gdk.Pixbuf? get_close_button_pixbuf (float monitor_scale) {
51+
var height = Utils.calculate_button_size (monitor_scale);
5052

5153
if (close_pixbufs[height] == null) {
5254
try {
@@ -71,7 +73,7 @@ public class Gala.CloseButton : Clutter.Actor {
7173
// works as good as some weird fallback-image-failed-to-load pixbuf
7274
critical ("Could not create close button");
7375

74-
var size = Utils.calculate_button_size (scale);
76+
var size = Utils.calculate_button_size (monitor_scale);
7577
pixbuf_actor.set_size (size, size);
7678
pixbuf_actor.background_color = { 255, 0, 0, 255 };
7779
}

src/Widgets/MultitaskingView/WindowClone.vala

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,17 @@ public class Gala.WindowClone : ActorTarget, RootTarget {
138138
window_title = new Tooltip (monitor_scale);
139139
bind_property ("monitor-scale", window_title, "monitor-scale");
140140

141+
close_button = new Gala.CloseButton (monitor_scale) {
142+
opacity = 0
143+
};
144+
bind_property ("monitor-scale", close_button, "monitor-scale");
145+
close_button.triggered.connect (close_window);
146+
close_button.notify["has-pointer"].connect (() => update_hover_widgets ());
147+
141148
add_child (active_shape);
142149
add_child (clone_container);
143150
add_child (window_title);
151+
add_child (close_button);
144152

145153
notify["monitor-scale"].connect (reallocate);
146154
reallocate ();
@@ -165,19 +173,12 @@ public class Gala.WindowClone : ActorTarget, RootTarget {
165173
}
166174

167175
private void reallocate () {
168-
close_button = new Gala.CloseButton (monitor_scale) {
169-
opacity = 0
170-
};
171-
close_button.triggered.connect (close_window);
172-
close_button.notify["has-pointer"].connect (() => update_hover_widgets ());
173-
174176
window_icon = new WindowIcon (window, WINDOW_ICON_SIZE, (int)Math.round (monitor_scale)) {
175177
visible = !overview_mode
176178
};
177179
window_icon.opacity = 0;
178180
window_icon.set_pivot_point (0.5f, 0.5f);
179181

180-
add_child (close_button);
181182
add_child (window_icon);
182183

183184
set_child_below_sibling (window_icon, window_title);

0 commit comments

Comments
 (0)