diff options
| author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2025-03-22 22:05:59 +0100 |
|---|---|---|
| committer | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2025-03-24 17:57:37 +0100 |
| commit | e8d37d2fe2d3b6827c495f86ce4ac7951486f970 (patch) | |
| tree | 985da7d1a25bd29af96156df692055ffe68edcf0 /src/arctica-greeter.vala | |
| parent | 6586045b99e43ed046f051d23b0b7f8b131f38c1 (diff) | |
| download | arctica-greeter-e8d37d2fe2d3b6827c495f86ce4ac7951486f970.tar.gz arctica-greeter-e8d37d2fe2d3b6827c495f86ce4ac7951486f970.tar.bz2 arctica-greeter-e8d37d2fe2d3b6827c495f86ce4ac7951486f970.zip | |
Introduce UI/widget scaling per scaling factor.
This gsettings 'widget-scaling-factor' can be used together with the 'xft-dpi' setting to fractionally scale the UI to better readability.
Diffstat (limited to 'src/arctica-greeter.vala')
| -rw-r--r-- | src/arctica-greeter.vala | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/arctica-greeter.vala b/src/arctica-greeter.vala index 30be99a..ea1fce4 100644 --- a/src/arctica-greeter.vala +++ b/src/arctica-greeter.vala @@ -21,7 +21,6 @@ * Robert Tari <robert@tari.in> */ -public const int grid_size = 40; [SingleInstance] public class ArcticaGreeter : Object @@ -37,7 +36,9 @@ public class ArcticaGreeter : Object public bool test_highcontrast { get; construct; default = false; } // Menubar is smaller, but with shadow, we reserve more space - public const int MENUBAR_HEIGHT = 40; + public int menubar_height { get; set; default = 32 + 8; } + public int grid_size { get; set; default = 40; } + public double scaling_factor_widgets { get; set; default = 1; } private string state_file; private KeyFile state; @@ -1500,6 +1501,13 @@ public class ArcticaGreeter : Object debug ("Creating Arctica Greeter"); var greeter = new ArcticaGreeter (do_test_mode, do_test_highcontrast); + + /* Widget/UI scaling settings */ + greeter.scaling_factor_widgets = AGSettings.get_double (AGSettings.KEY_WIDGET_SCALING); + debug ("Scaling factor for widgets / UI elements is: %f", greeter.scaling_factor_widgets); + greeter.menubar_height = (int)Math.round(greeter.menubar_height * greeter.scaling_factor_widgets); + greeter.grid_size = (int)Math.round(greeter.grid_size * greeter.scaling_factor_widgets); + greeter.go(); if (!do_test_mode) @@ -1998,6 +2006,8 @@ public class DBusServer : Object if ((this.pGreeter.pMagnifierWindow != null) && (pMagnifierSocket != null) && bActive) { + var greeter = new ArcticaGreeter(); + /* resize and position the magnifier window */ debug ("Resizing and positioning Magnifier window."); var pDisplay = this.pGreeter.main_window.get_display (); @@ -2011,13 +2021,13 @@ public class DBusServer : Object { magnifier_width = (int) (magnifier_width * 0.75); magnifier_height = (int) (magnifier_height * 0.75); - this.pGreeter.pMagnifierWindow.move (cRect.x + ArcticaGreeter.MENUBAR_HEIGHT, cRect.y + ArcticaGreeter.MENUBAR_HEIGHT * 2); + this.pGreeter.pMagnifierWindow.move (cRect.x + greeter.menubar_height, cRect.y + greeter.menubar_height * 2); } else if (sPosition == "top-right") { magnifier_width = (int) (magnifier_width * 0.75); magnifier_height = (int) (magnifier_height * 0.75); - this.pGreeter.pMagnifierWindow.move (cRect.x + cRect.width - ArcticaGreeter.MENUBAR_HEIGHT - magnifier_width, cRect.y + ArcticaGreeter.MENUBAR_HEIGHT * 2); + this.pGreeter.pMagnifierWindow.move (cRect.x + cRect.width - greeter.menubar_height - magnifier_width, cRect.y + greeter.menubar_height * 2); } else if (sPosition == "centre-left") { |
