>From 094cbd60523ba9282b653d71c288776713812b2b Mon Sep 17 00:00:00 2001 From: Alan Third Date: Tue, 27 Oct 2020 23:53:13 +0000 Subject: [PATCH] Expose NS frames scale factor to lisp * src/nsfns.m (Fns_frame_scale_factor): New function. --- src/nsfns.m | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/nsfns.m b/src/nsfns.m index c7956497c4..7e367b0edb 100644 --- a/src/nsfns.m +++ b/src/nsfns.m @@ -1503,6 +1503,23 @@ Frames are listed from topmost (first) to bottommost (last). */) } } +DEFUN ("ns-frame-scale-factor", Fns_frame_scale_factor, Sns_frame_scale_factor, + 0, 1, 0, + doc: /* Get the scale factor for FRAME. */) + (Lisp_Object frame) +{ + struct frame *f = decode_window_system_frame (frame); + +#if defined NS_IMPL_COCOA && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 + NSWindow *w = [FRAME_NS_VIEW (f) window]; +# if MAC_OS_X_VERSION_MIN_REQUIRED < 1070 + if ([w respondsToSelector:@selector(backingScaleFactor)]) +# endif + return make_float ([w backingScaleFactor]); +#endif + return make_float (1); +} + DEFUN ("ns-popup-font-panel", Fns_popup_font_panel, Sns_popup_font_panel, 0, 1, "", doc: /* Pop up the font panel. */) @@ -3133,6 +3150,7 @@ - (Lisp_Object)lispString defsubr (&Sns_frame_edges); defsubr (&Sns_frame_list_z_order); defsubr (&Sns_frame_restack); + defsubr (&Sns_frame_scale_factor); defsubr (&Sns_set_mouse_absolute_pixel_position); defsubr (&Sns_mouse_absolute_pixel_position); defsubr (&Sns_show_character_palette); -- 2.26.1