aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLars Ingebrigtsen2017-07-16 17:31:54 +0200
committerLars Ingebrigtsen2017-07-17 16:58:57 +0200
commit552c90edb8cbf673b9a7d07ea39338585fce904a (patch)
tree4e03d1874714f975ea5d95e8070bc27e3b6fea16
parentb04132754e845d84e7e1b5c8bca581c64200aa64 (diff)
downloademacs-552c90edb8cbf673b9a7d07ea39338585fce904a.tar.gz
emacs-552c90edb8cbf673b9a7d07ea39338585fce904a.zip
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.c19
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)
204 *dpy = gdpy ? GDK_DISPLAY_XDISPLAY (gdpy) : NULL; 204 *dpy = gdpy ? GDK_DISPLAY_XDISPLAY (gdpy) : NULL;
205} 205}
206 206
207static int
208xg_get_gdk_scale (void)
209{
210 const char *sscale = getenv ("GDK_SCALE");
211
212 if (sscale)
213 {
214 long scale = atol (sscale);
215 if (0 < scale)
216 return min (scale, INT_MAX);
217 }
218
219 return 1;
220}
221
207/* Scaling/HiDPI functions. */ 222/* Scaling/HiDPI functions. */
208int 223int
209xg_get_scale (struct frame *f) 224xg_get_scale (struct frame *f)
210{ 225{
226#ifdef HAVE_GTK3
211 if (FRAME_GTK_WIDGET (f)) 227 if (FRAME_GTK_WIDGET (f))
212 return gtk_widget_get_scale_factor (FRAME_GTK_WIDGET (f)); 228 return gtk_widget_get_scale_factor (FRAME_GTK_WIDGET (f));
213 return 1; 229#endif
230 return xg_get_gdk_scale ();
214} 231}
215 232
216/* Close display DPY. */ 233/* Close display DPY. */