Function: window--sides-reverse-on-frame-p

window--sides-reverse-on-frame-p is a byte-compiled function defined in window.el.gz.

Signature

(window--sides-reverse-on-frame-p FRAME)

Documentation

Return non-nil when side windows should appear reversed on FRAME.

This uses some heuristics to guess the user's intentions when the selected window of FRAME is a side window.

Source Code

;; Defined in /usr/src/emacs/lisp/window.el.gz
(defun window--sides-reverse-on-frame-p (frame)
  "Return non-nil when side windows should appear reversed on FRAME.
This uses some heuristics to guess the user's intentions when the
selected window of FRAME is a side window."
  (cond
   ;; Reverse when `window-sides-reversed' is t.  Do not reverse when
   ;; `window-sides-reversed' is nil.
   ((memq window-sides-reversed '(nil t))
    window-sides-reversed)
   ;; Reverse when FRAME's selected window shows a right-to-left buffer.
   ((let ((window (frame-selected-window frame)))
      (when (and (not (window-parameter window 'window-side))
                 (or (not (window-minibuffer-p window))
                     (setq window (minibuffer-selected-window))))
        (with-current-buffer (window-buffer window)
          (eq bidi-paragraph-direction 'right-to-left)))))
   ;; Reverse when FRAME's `window-sides-main-selected-window' parameter
   ;; specifies a live window showing a right-to-left buffer.
   ((let ((window (frame-parameter
                   frame 'window-sides-main-selected-window)))
      (when (window-live-p window)
        (with-current-buffer (window-buffer window)
          (eq bidi-paragraph-direction 'right-to-left)))))
   ;; Reverse when all windows in FRAME's main window show right-to-left
   ;; buffers.
   (t
    (catch 'found
      (walk-window-subtree
       (lambda (window)
         (with-current-buffer (window-buffer window)
           (when (eq bidi-paragraph-direction 'left-to-right)
             (throw 'found nil))))
       (window-main-window frame))
      t))))