[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 0e739909ab: Fix image-mode-fit-frame some more
From: |
Lars Ingebrigtsen |
Subject: |
master 0e739909ab: Fix image-mode-fit-frame some more |
Date: |
Thu, 24 Mar 2022 04:55:03 -0400 (EDT) |
branch: master
commit 0e739909abb679812484e2ddbe8483eb2dd5c815
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>
Fix image-mode-fit-frame some more
* lisp/image-mode.el (image-mode-fit-frame): Use frame-text-width
and fit-frame-to-buffer instead of computing things ourselves
(bug#37630). This makes things work better across platforms.
---
lisp/image-mode.el | 34 ++++++++++++----------------------
1 file changed, 12 insertions(+), 22 deletions(-)
diff --git a/lisp/image-mode.el b/lisp/image-mode.el
index 863d014cdc..d7dfb4336b 100644
--- a/lisp/image-mode.el
+++ b/lisp/image-mode.el
@@ -419,12 +419,10 @@ window configuration prior to the last
`image-mode-fit-frame'
call."
(interactive (list nil t))
(let* ((buffer (current-buffer))
- (display (image-get-display-property))
- (size (image-display-size display t))
(saved (frame-parameter frame 'image-mode-saved-params))
(window-configuration (current-window-configuration frame))
- (frame-width (frame-pixel-width frame))
- (frame-height (frame-pixel-height frame)))
+ (frame-width (frame-text-width frame))
+ (frame-height (frame-text-height frame)))
(with-selected-frame (or frame (selected-frame))
(if (and toggle saved
(= (caar saved) frame-width)
@@ -436,24 +434,16 @@ call."
(set-frame-parameter frame 'image-mode-saved-params nil))
(delete-other-windows)
(switch-to-buffer buffer t t)
- (let* ((edges (window-inside-pixel-edges))
- (inner-width (- (nth 2 edges) (nth 0 edges)))
- (inner-height (- (nth 3 edges) (nth 1 edges))))
- (set-frame-width frame (+ (ceiling (car size))
- (- frame-width inner-width))
- nil t)
- (set-frame-height frame (+ (ceiling (cdr size))
- (- frame-height inner-height))
- nil t)
- ;; The frame size after the above `set-frame-*' calls may
- ;; differ from what we specified, due to window manager
- ;; interference. We have to call `frame-width' and
- ;; `frame-height' to get the actual results.
- (set-frame-parameter frame 'image-mode-saved-params
- (list (cons (frame-pixel-width frame)
- (frame-pixel-height frame))
- (cons frame-width frame-height)
- window-configuration)))))))
+ (fit-frame-to-buffer frame)
+ ;; The frame size after the above `set-frame-*' calls may
+ ;; differ from what we specified, due to window manager
+ ;; interference. We have to call `frame-width' and
+ ;; `frame-height' to get the actual results.
+ (set-frame-parameter frame 'image-mode-saved-params
+ (list (cons (frame-text-width frame)
+ (frame-text-height frame))
+ (cons frame-width frame-height)
+ window-configuration))))))
;;; Image Mode setup
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- master 0e739909ab: Fix image-mode-fit-frame some more,
Lars Ingebrigtsen <=