@@ -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 }
0 commit comments