to fiddle with @code{gnus-tree-minimize-window} to avoid having the
windows resized.
+Lastly, it's possible to make Gnus window layouts ``atomic''
+(@xref{Atomic Windows, , Atomic Windows, elisp, The GNU Emacs Lisp
+Reference Manual}) by setting @code{gnus-use-atomic-windows} to
+@code{t}. This will ensure that pop-up buffers (e.g. help or
+completion buffers), will appear below or to the side of the entire
+Gnus window layout and not, for example, squashed between the summary
+and article buffers.
+
@subsection Window Configuration Names
Here's a list of most of the currently known window configurations,
** Gnus
++++
+*** New option 'gnus-use-atomic-windows' makes Gnus window layouts
+atomic. See the "Atomic Windows" section of the Elisp manual for
+details.
+
+++
*** There's a new value for 'gnus-article-date-headers',
'combined-local-lapsed', which will show both the time (in the local
:group 'gnus-windows
:type 'boolean)
+(defcustom gnus-use-atomic-windows t
+ "If non-nil, Gnus' window compositions will be atomic."
+ :type 'boolean
+ :version "27.1")
+
(defcustom gnus-window-min-width 2
"Minimum width of Gnus buffers."
:group 'gnus-windows
(unless (gnus-buffer-live-p nntp-server-buffer)
(nnheader-init-server-buffer))
+ ;; Remove all 'window-atom parameters, as we're going to blast
+ ;; and recreate the window layout.
+ (when (window-parameter nil 'window-atom)
+ (let ((root (window-atom-root)))
+ (walk-window-subtree
+ (lambda (win)
+ (set-window-parameter win 'window-atom nil))
+ root t)))
+
;; Either remove all windows or just remove all Gnus windows.
(let ((frame (selected-frame)))
(unwind-protect
(set-buffer nntp-server-buffer)
(gnus-configure-frame split)
(run-hooks 'gnus-configure-windows-hook)
+
+ ;; If we're using atomic windows, and the current frame has
+ ;; multiple windows, make them atomic.
+ (when (and gnus-use-atomic-windows
+ (window-parent (selected-window)))
+ (window-make-atom (window-parent (selected-window))))
+
(when gnus-window-frame-focus
(select-frame-set-input-focus
(window-frame gnus-window-frame-focus)))))))))