X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libi3%2Fdpi.c;h=897e6e4016a362645f96ee84bd032b577ed0015f;hb=d08b0c428b57a8d76c2f863b1a5b25099ea5a62d;hp=37d5b21502e5882df374933070497d5e73ae0484;hpb=33d1d5d3c61a2136eb4b42ffd29870fd68d2d766;p=i3%2Fi3 diff --git a/libi3/dpi.c b/libi3/dpi.c index 37d5b215..897e6e40 100644 --- a/libi3/dpi.c +++ b/libi3/dpi.c @@ -2,14 +2,12 @@ * vim:ts=4:sw=4:expandtab * * i3 - an improved dynamic tiling window manager - * © 2009-2014 Michael Stapelberg and contributors (see also: LICENSE) + * © 2009 Michael Stapelberg and contributors (see also: LICENSE) * */ #include "libi3.h" #include -extern xcb_screen_t *root_screen; - /* * Convert a logical amount of pixels (e.g. 2 pixels on a “standard” 96 DPI * screen) to a corresponding amount of physical pixels on a standard or retina @@ -17,6 +15,12 @@ extern xcb_screen_t *root_screen; * */ int logical_px(const int logical) { + if (root_screen == NULL) { + /* Dpi info may not be available when parsing a config without an X + * server, such as for config file validation. */ + return 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