[gedit-latex] Do not rely on deprecated Gdk.Screen.width_mm(), do not crash if monitor size is unknown



commit bd697350b2412098315e40f990d6e09953e5e14a
Author: Pietro Battiston <pbattiston src gnome org>
Date:   Thu Apr 16 18:00:31 2020 +0200

    Do not rely on deprecated Gdk.Screen.width_mm(), do not crash if monitor size is unknown

 latex/latex/environment.py | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)
---
diff --git a/latex/latex/environment.py b/latex/latex/environment.py
index 548b5a9..2bfd4a3 100644
--- a/latex/latex/environment.py
+++ b/latex/latex/environment.py
@@ -336,9 +336,16 @@ class Environment(object):
     @property
     def screen_dpi(self):
         if not self._screen_dpi:
-            screen = Gdk.Screen.get_default()
-            dpi_x = screen.width() / screen.width_mm() * 25.4
-            dpi_y = screen.height() / screen.height_mm() * 25.4
+            display = Gdk.Display.get_default()
+            # FIXME: find most appropriate monitor, not first (0):
+            monitor = display.get_monitor(0)
+            geometry = monitor.get_geometry()
+            try:
+                dpi_x = geometry.width / monitor.get_width_mm() * 25.4
+                dpi_y = geometry.height / monitor.get_height_mm() * 25.4
+            except ZeroDivisionError:
+                # Happens inside qemu virtual machines. Entirely arbitrary value:
+                dpi_x = dpi_y = 5
 
             self._screen_dpi = (dpi_x + dpi_y) / 2.0
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]