[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
feature/pgtk ce7a78d: Support frame-scale-factor on pgtk frames
From: |
Yuuki Harano |
Subject: |
feature/pgtk ce7a78d: Support frame-scale-factor on pgtk frames |
Date: |
Sat, 5 Jun 2021 08:00:36 -0400 (EDT) |
branch: feature/pgtk
commit ce7a78d0a8e033f04978b0c0762378ba13d3fa64
Author: Yuuki Harano <masm+github@masm11.me>
Commit: Yuuki Harano <masm+github@masm11.me>
Support frame-scale-factor on pgtk frames
* src/pgtkfns.c (pgtk_frame_scale_factor): New function to get frame
scale factor.
* src/frame.h: Call it when a pgtk frame.
* src/pgtkterm.h: Add the declaration.
---
src/frame.h | 2 ++
src/pgtkfns.c | 20 ++++++++++++++++++++
src/pgtkterm.h | 2 ++
3 files changed, 24 insertions(+)
diff --git a/src/frame.h b/src/frame.h
index 1aba1e3..b1ad525 100644
--- a/src/frame.h
+++ b/src/frame.h
@@ -920,6 +920,8 @@ default_pixels_per_inch_y (void)
/* Scale factor of frame F. */
#if defined HAVE_NS
# define FRAME_SCALE_FACTOR(f) (FRAME_NS_P (f) ? ns_frame_scale_factor (f) : 1)
+#elif defined HAVE_PGTK
+# define FRAME_SCALE_FACTOR(f) (FRAME_PGTK_P (f) ? pgtk_frame_scale_factor (f)
: 1)
#else
# define FRAME_SCALE_FACTOR(f) 1
#endif
diff --git a/src/pgtkfns.c b/src/pgtkfns.c
index 5f11451..ceff279 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.
diff --git a/src/pgtkterm.h b/src/pgtkterm.h
index 07d7fc1..c87a5e1 100644
--- a/src/pgtkterm.h
+++ b/src/pgtkterm.h
@@ -663,4 +663,6 @@ extern bool xg_set_icon_from_xpm_data (struct frame *f,
const char **data);
extern bool pgtk_text_icon (struct frame *f, const char *icon_name);
+extern double pgtk_frame_scale_factor (struct frame *);
+
#endif /* HAVE_PGTK */
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- feature/pgtk ce7a78d: Support frame-scale-factor on pgtk frames,
Yuuki Harano <=