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 /src/gtkutil.c | |
| 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.
Diffstat (limited to 'src/gtkutil.c')
| -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. */ |
