]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix fit-frame-to-buffer for multi-monitor setup
authorSergey Trofimov <sarg@sarg.org.ru>
Sun, 1 Mar 2020 18:49:18 +0000 (19:49 +0100)
committerMartin Rudalics <rudalics@gmx.at>
Sun, 1 Mar 2020 18:49:18 +0000 (19:49 +0100)
* 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

lisp/window.el

index 40c4bf5ad47d20dccd16c37cf762697dc0922c32..ceab43f7cd3896fcf549478d2255b5f9827c8bac 100644 (file)
@@ -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))