Clone in a terminal:
Commit 25ef0cf
Johan Mattsson - 2024-03-14T18:39:45+00:00
25ef0cf5615cadf627d45112817ebe9f6735e861johan.mattsson.m@gmail.com

Fix screen scaling on Linux (Wayland)

Changed files (1)

Diff

diff --git a/birdfont/GtkWindow.vala b/birdfont/GtkWindow.valaindex 5cb54d0..0ac1235 100644--- a/birdfont/GtkWindow.vala+++ b/birdfont/GtkWindow.vala@@ -531,20 +531,19 @@ public class GtkWindow : Gtk.Window, NativeWindow { 	 	public void set_cursor (int visible) { 	}-	+ 	public double get_screen_scale () {-		string? scale = Environment.get_variable ("GDK_SCALE");-		double factor;-		-		if (scale == null) {-			return 1;-		}-		-		if (double.try_parse ((!) scale, out factor)) {-			return factor;-		}-		-		return 1;+		var screen = Gdk.Screen.get_default();+		return_val_if_fail (screen != null, 1);++		var current_screen = (!) screen;+		var resolution = current_screen.get_resolution();+		var reference_resolution = 96.0;  // reference resolution+		double fractional_scale = resolution / reference_resolution;++		int scale_factor = this.get_scale_factor(); // probably 1 or 2 for 100% or 200%++		return scale_factor * fractional_scale; 	} } 

Contact

Email: johan.mattsson.m@gmail.com
Mastodon: typo.social/@birdfont
GitHub: johanmattssonm
LinkedIn: johan-mattsson-2ab324112