]> www.fi.muni.cz Git - evince.git/commitdiff
Fix dpi calculation
authorJuanjo Marín <juanj.marin@juntadeandalucia.es>
Sun, 21 Feb 2010 11:14:25 +0000 (12:14 +0100)
committerCarlos Garcia Campos <carlosgc@gnome.org>
Sun, 21 Feb 2010 11:14:25 +0000 (12:14 +0100)
Fixes bug #608586.

shell/ev-utils.c

index 8cda88997e8056a9cbfc8ad82cd342001dd8ac34..d77e91ff87936637a7b10c4748f42ddbe48fab02 100644 (file)
@@ -307,14 +307,17 @@ gdouble
 get_screen_dpi (GtkWindow *window)
 {
        GdkScreen *screen;
-       gdouble    xdpi, ydpi;
+       gdouble    dp, di;
 
        screen = gtk_window_get_screen (window);
 
-       xdpi = 25.4 * gdk_screen_get_width (screen) / gdk_screen_get_width_mm (screen);
-       ydpi = 25.4 * gdk_screen_get_height (screen) / gdk_screen_get_height_mm (screen);
-       
-       return (xdpi + ydpi) / 2.0;
+       /*diagonal in pixels*/
+       dp = hypot (gdk_screen_get_width (screen), gdk_screen_get_height (screen));
+
+       /*diagonal in inches*/
+       di = hypot (gdk_screen_get_width_mm(screen), gdk_screen_get_height_mm (screen)) / 25.4;
+
+       return (dp / di);
 }