summaryrefslogtreecommitdiff
path: root/src/pgtkfns.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pgtkfns.c')
-rw-r--r--src/pgtkfns.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/pgtkfns.c b/src/pgtkfns.c
index 5f114515c92..ceff279ad02 100644
--- a/src/pgtkfns.c
+++ b/src/pgtkfns.c
@@ -2728,6 +2728,26 @@ Internal use only, use `display-monitor-attributes-list' instead. */)
return attributes_list;
}
+double
+pgtk_frame_scale_factor (struct frame *f)
+{
+ struct pgtk_display_info *dpyinfo = FRAME_DISPLAY_INFO (f);
+ GdkDisplay *gdpy = dpyinfo->gdpy;
+
+ block_input ();
+
+ GdkWindow *gwin = gtk_widget_get_window (FRAME_GTK_WIDGET (f));
+ GdkMonitor *gmon = gdk_display_get_monitor_at_window (gdpy, gwin);
+
+ /* GTK returns scaled sizes for the workareas. */
+ double scale = pgtk_get_monitor_scale_factor (gdk_monitor_get_model (gmon));
+ if (scale == 0.0)
+ scale = gdk_monitor_get_scale_factor (gmon);
+
+ unblock_input ();
+
+ return scale;
+}
DEFUN ("x-display-planes", Fx_display_planes, Sx_display_planes, 0, 1, 0,
doc: /* Return the number of bitplanes of the display TERMINAL.