diff options
| author | Alan Third | 2021-03-24 22:50:03 +0000 |
|---|---|---|
| committer | Alan Third | 2021-04-03 23:06:44 +0100 |
| commit | 4e1f92feb3a861f93b7a285715d03be930b41b91 (patch) | |
| tree | 8511c057fba4eefecd7f32e0b346ae3d08a550d1 | |
| parent | b0d095b2cdff7b43ab3866a2d541d18e359a4125 (diff) | |
| download | emacs-4e1f92feb3a861f93b7a285715d03be930b41b91.tar.gz emacs-4e1f92feb3a861f93b7a285715d03be930b41b91.zip | |
Implement frame-scale-factor
* 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.
| -rw-r--r-- | src/frame.c | 12 | ||||
| -rw-r--r-- | src/frame.h | 7 | ||||
| -rw-r--r-- | src/image.c | 8 |
3 files changed, 19 insertions, 8 deletions
diff --git a/src/frame.c b/src/frame.c index 66ae4943ba2..784a079bffe 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -3744,6 +3744,17 @@ window state change flag is reset. */) | |||
| 3744 | return (FRAME_WINDOW_STATE_CHANGE (f) = !NILP (arg)) ? Qt : Qnil; | 3744 | return (FRAME_WINDOW_STATE_CHANGE (f) = !NILP (arg)) ? Qt : Qnil; |
| 3745 | } | 3745 | } |
| 3746 | 3746 | ||
| 3747 | DEFUN ("frame-scale-factor", Fframe_scale_factor, Sframe_scale_factor, | ||
| 3748 | 0, 1, 0, | ||
| 3749 | doc: /* Return FRAMEs scale factor. | ||
| 3750 | The scale factor is the amount a logical pixel size must be multiplied | ||
| 3751 | to find the real number of pixels. */) | ||
| 3752 | (Lisp_Object frame) | ||
| 3753 | { | ||
| 3754 | struct frame *f = decode_live_frame (frame); | ||
| 3755 | |||
| 3756 | return (make_float (FRAME_SCALE_FACTOR (f))); | ||
| 3757 | } | ||
| 3747 | 3758 | ||
| 3748 | /*********************************************************************** | 3759 | /*********************************************************************** |
| 3749 | Frame Parameters | 3760 | Frame Parameters |
| @@ -6457,6 +6468,7 @@ iconify the top level frame instead. */); | |||
| 6457 | defsubr (&Sframe_pointer_visible_p); | 6468 | defsubr (&Sframe_pointer_visible_p); |
| 6458 | defsubr (&Sframe_window_state_change); | 6469 | defsubr (&Sframe_window_state_change); |
| 6459 | defsubr (&Sset_frame_window_state_change); | 6470 | defsubr (&Sset_frame_window_state_change); |
| 6471 | defsubr (&Sframe_scale_factor); | ||
| 6460 | 6472 | ||
| 6461 | #ifdef HAVE_WINDOW_SYSTEM | 6473 | #ifdef HAVE_WINDOW_SYSTEM |
| 6462 | defsubr (&Sx_get_resource); | 6474 | defsubr (&Sx_get_resource); |
diff --git a/src/frame.h b/src/frame.h index 9ddcb4c6810..9963112036f 100644 --- a/src/frame.h +++ b/src/frame.h | |||
| @@ -907,6 +907,13 @@ default_pixels_per_inch_y (void) | |||
| 907 | (WINDOWP (f->minibuffer_window) \ | 907 | (WINDOWP (f->minibuffer_window) \ |
| 908 | && XFRAME (XWINDOW (f->minibuffer_window)->frame) == f) | 908 | && XFRAME (XWINDOW (f->minibuffer_window)->frame) == f) |
| 909 | 909 | ||
| 910 | /* Scale factor of frame F. */ | ||
| 911 | #if defined HAVE_NS | ||
| 912 | # define FRAME_SCALE_FACTOR(f) (FRAME_NS_P (f) ? ns_frame_scale_factor (f) : 1) | ||
| 913 | #else | ||
| 914 | # define FRAME_SCALE_FACTOR(f) 1; | ||
| 915 | #endif | ||
| 916 | |||
| 910 | /* Pixel width of frame F. */ | 917 | /* Pixel width of frame F. */ |
| 911 | #define FRAME_PIXEL_WIDTH(f) ((f)->pixel_width) | 918 | #define FRAME_PIXEL_WIDTH(f) ((f)->pixel_width) |
| 912 | 919 | ||
diff --git a/src/image.c b/src/image.c index b85418c690d..774b7e14ea9 100644 --- a/src/image.c +++ b/src/image.c | |||
| @@ -135,14 +135,6 @@ typedef struct ns_bitmap_record Bitmap_Record; | |||
| 135 | # define COLOR_TABLE_SUPPORT 1 | 135 | # define COLOR_TABLE_SUPPORT 1 |
| 136 | #endif | 136 | #endif |
| 137 | 137 | ||
| 138 | #ifdef HAVE_RSVG | ||
| 139 | #if defined HAVE_NS | ||
| 140 | # define FRAME_SCALE_FACTOR(f) ns_frame_scale_factor (f) | ||
| 141 | #else | ||
| 142 | # define FRAME_SCALE_FACTOR(f) 1; | ||
| 143 | #endif | ||
| 144 | #endif | ||
| 145 | |||
| 146 | static void image_disable_image (struct frame *, struct image *); | 138 | static void image_disable_image (struct frame *, struct image *); |
| 147 | static void image_edge_detection (struct frame *, struct image *, Lisp_Object, | 139 | static void image_edge_detection (struct frame *, struct image *, Lisp_Object, |
| 148 | Lisp_Object); | 140 | Lisp_Object); |