]> git.eshelyaron.com Git - emacs.git/commitdiff
Implement frame-scale-factor
authorAlan Third <alan@idiocy.org>
Wed, 24 Mar 2021 22:50:03 +0000 (22:50 +0000)
committerAlan Third <alan@idiocy.org>
Sat, 3 Apr 2021 22:06:44 +0000 (23:06 +0100)
* src/frame.c (Fframe_scale_factor): New function.
(syms_of_frame): Add frame-scale-factor.
* src/frame.h: Add FRAME_SCALE_FACTOR.
* src/image.c: Move FRAME_SCALE_FACTOR to frame.h.

src/frame.c
src/frame.h
src/image.c

index 66ae4943ba2f774cde433a2214c768389941c25b..784a079bffea1780d67fb1671b43ee7bdbd0dc42 100644 (file)
@@ -3744,6 +3744,17 @@ window state change flag is reset.  */)
   return (FRAME_WINDOW_STATE_CHANGE (f) = !NILP (arg)) ? Qt : Qnil;
 }
 
+DEFUN ("frame-scale-factor", Fframe_scale_factor, Sframe_scale_factor,
+       0, 1, 0,
+       doc: /* Return FRAMEs scale factor.
+The scale factor is the amount a logical pixel size must be multiplied
+to find the real number of pixels.  */)
+     (Lisp_Object frame)
+{
+  struct frame *f = decode_live_frame (frame);
+
+  return (make_float (FRAME_SCALE_FACTOR (f)));
+}
 \f
 /***********************************************************************
                                Frame Parameters
@@ -6457,6 +6468,7 @@ iconify the top level frame instead.  */);
   defsubr (&Sframe_pointer_visible_p);
   defsubr (&Sframe_window_state_change);
   defsubr (&Sset_frame_window_state_change);
+  defsubr (&Sframe_scale_factor);
 
 #ifdef HAVE_WINDOW_SYSTEM
   defsubr (&Sx_get_resource);
index 9ddcb4c6810b64e6083b12f3e7ae88f33cd0ce0d..9963112036fc9ebbda871d78ef434096b3ae670a 100644 (file)
@@ -907,6 +907,13 @@ default_pixels_per_inch_y (void)
   (WINDOWP (f->minibuffer_window)                              \
    && XFRAME (XWINDOW (f->minibuffer_window)->frame) == f)
 
+/* Scale factor of frame F.  */
+#if defined HAVE_NS
+# define FRAME_SCALE_FACTOR(f) (FRAME_NS_P (f) ? ns_frame_scale_factor (f) : 1)
+#else
+# define FRAME_SCALE_FACTOR(f) 1;
+#endif
+
 /* Pixel width of frame F.  */
 #define FRAME_PIXEL_WIDTH(f) ((f)->pixel_width)
 
index b85418c690d6a522e56f3cd3fda211101b7fa9c0..774b7e14ea9f914c89d326c05dbe0f1dbf058000 100644 (file)
@@ -135,14 +135,6 @@ typedef struct ns_bitmap_record Bitmap_Record;
 # define COLOR_TABLE_SUPPORT 1
 #endif
 
-#ifdef HAVE_RSVG
-#if defined HAVE_NS
-# define FRAME_SCALE_FACTOR(f) ns_frame_scale_factor (f)
-#else
-# define FRAME_SCALE_FACTOR(f) 1;
-#endif
-#endif
-
 static void image_disable_image (struct frame *, struct image *);
 static void image_edge_detection (struct frame *, struct image *, Lisp_Object,
                                   Lisp_Object);