]> git.sur5r.net Git - i3/i3/commitdiff
Treat everything up to 120 dpi as 96 dpi (Thanks jefvel)
authorMichael Stapelberg <michael@stapelberg.de>
Sat, 23 Aug 2014 14:02:30 +0000 (16:02 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Sat, 23 Aug 2014 14:02:30 +0000 (16:02 +0200)
See the comment in the source for rationale.

libi3/dpi.c

index 090a65600004dbdd83b80edea8379de4419b5b95..37d5b21502e5882df374933070497d5e73ae0484 100644 (file)
@@ -1,3 +1,10 @@
+/*
+ * vim:ts=4:sw=4:expandtab
+ *
+ * i3 - an improved dynamic tiling window manager
+ * © 2009-2014 Michael Stapelberg and contributors (see also: LICENSE)
+ *
+ */
 #include "libi3.h"
 #include <math.h>
 
@@ -12,5 +19,13 @@ extern xcb_screen_t *root_screen;
 int logical_px(const int logical) {
     const int dpi = (double)root_screen->height_in_pixels * 25.4 /
                     (double)root_screen->height_in_millimeters;
+    /* There are many misconfigurations out there, i.e. systems with screens
+     * whose dpi is in fact higher than 96 dpi, but not significantly higher,
+     * so software was never adapted. We could tell people to reconfigure their
+     * systems to 96 dpi in order to get the behavior they expect/are used to,
+     * but since we can easily detect this case in code, let’s do it for them.
+     */
+    if ((dpi / 96.0) < 1.25)
+        return logical;
     return ceil((dpi / 96.0) * logical);
 }