diff options
author | Lars Ingebrigtsen <larsi@gnus.org> | 2017-07-16 17:31:54 +0200 |
---|---|---|
committer | Lars Ingebrigtsen <larsi@gnus.org> | 2017-07-17 16:58:57 +0200 |
commit | 552c90edb8cbf673b9a7d07ea39338585fce904a (patch) | |
tree | 4e03d1874714f975ea5d95e8070bc27e3b6fea16 | |
parent | b04132754e845d84e7e1b5c8bca581c64200aa64 (diff) | |
download | emacs-552c90edb8cbf673b9a7d07ea39338585fce904a.tar.gz |
Make scaling work (?) on pre-GTK3 systems
* src/gtkutil.c (xg_get_gdk_scale): Reinstate function.
(xg_get_scale): Use it on non-GTK3 systems.
-rw-r--r-- | src/gtkutil.c | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/src/gtkutil.c b/src/gtkutil.c index 6c9e069001e..dddf8b1c25c 100644 --- a/src/gtkutil.c +++ b/src/gtkutil.c @@ -204,13 +204,30 @@ xg_display_open (char *display_name, Display **dpy) *dpy = gdpy ? GDK_DISPLAY_XDISPLAY (gdpy) : NULL; } +static int +xg_get_gdk_scale (void) +{ + const char *sscale = getenv ("GDK_SCALE"); + + if (sscale) + { + long scale = atol (sscale); + if (0 < scale) + return min (scale, INT_MAX); + } + + return 1; +} + /* Scaling/HiDPI functions. */ int xg_get_scale (struct frame *f) { +#ifdef HAVE_GTK3 if (FRAME_GTK_WIDGET (f)) return gtk_widget_get_scale_factor (FRAME_GTK_WIDGET (f)); - return 1; +#endif + return xg_get_gdk_scale (); } /* Close display DPY. */ |