From: Sergey Trofimov Date: Sun, 1 Mar 2020 18:49:18 +0000 (+0100) Subject: Fix fit-frame-to-buffer for multi-monitor setup X-Git-Tag: emacs-27.0.91~144 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b42b894d1def7180ab715615116fe6af65b76bd8;p=emacs.git Fix fit-frame-to-buffer for multi-monitor setup * lisp/window.el (fit-frame-to-buffer): Call 'frame-monitor-attributes' instead of 'display-monitor-attributes-list'. Fix geometry calculations for multiple monitors. Copyright-paperwork-exempt: yes --- diff --git a/lisp/window.el b/lisp/window.el index 40c4bf5ad47..ceab43f7cd3 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -8794,8 +8794,7 @@ parameters of FRAME." (parent (frame-parent frame)) (monitor-attributes (unless parent - (car (display-monitor-attributes-list - (frame-parameter frame 'display))))) + (frame-monitor-attributes frame))) ;; FRAME'S parent or display sizes. Used in connection ;; with margins. (geometry @@ -8804,11 +8803,11 @@ parameters of FRAME." (parent-or-display-width (if parent (frame-native-width parent) - (- (nth 2 geometry) (nth 0 geometry)))) + (nth 2 geometry))) (parent-or-display-height (if parent (frame-native-height parent) - (- (nth 3 geometry) (nth 1 geometry)))) + (nth 3 geometry))) ;; FRAME's parent or workarea sizes. Used when no margins ;; are specified. (parent-or-workarea @@ -8870,13 +8869,15 @@ parameters of FRAME." (window--sanitize-margin (nth 2 margins) left-margin parent-or-display-width)) - (nth 2 parent-or-workarea))) + (+ (nth 0 parent-or-workarea) + (nth 2 parent-or-workarea)))) (bottom-margin (if (nth 3 margins) (- parent-or-display-height (window--sanitize-margin (nth 3 margins) top-margin parent-or-display-height)) - (nth 3 parent-or-workarea))) + (+ (nth 1 parent-or-workarea) + (nth 3 parent-or-workarea)))) ;; Minimum and maximum sizes specified for FRAME. (sizes (or (frame-parameter frame 'fit-frame-to-buffer-sizes) fit-frame-to-buffer-sizes))