unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#35873: Add atomic window support to Gnus
@ 2019-05-23 20:45 Eric Abrahamsen
  2019-06-21  9:10 ` Noam Postavsky
  2019-06-22 11:55 ` Lars Ingebrigtsen
  0 siblings, 2 replies; 16+ messages in thread
From: Eric Abrahamsen @ 2019-05-23 20:45 UTC (permalink / raw)
  To: 35873

[-- Attachment #1: Type: text/plain, Size: 2396 bytes --]

The attached patch adds atomic window support with a new customization
option, `gnus-use-atomic-windows', defaulting to nil. If t, a
multi-window Gnus layout will be treated as a single window when other
code pops up buffers. Ie, your completions buffer won't end up squished
between the summary and article buffers.

I'm pretty sure I've done the elisp manual cross reference incorrectly.

Thanks,
Eric




Gnus v5.13
GNU Emacs 27.0.50 (build 15, x86_64-pc-linux-gnu, GTK+ Version 3.24.8)
 of 2019-05-23
200 news.gmane.org InterNetNews NNRP server INN 2.6.1 ready (posting ok)
100 Legal commands
  ARTICLE [message-ID|number]
  AUTHINFO USER name|PASS password|SASL mechanism [initial-response]|GENERIC program [argument ...]
  BODY [message-ID|number]
  CAPABILITIES [keyword]
  COMPRESS DEFLATE
  DATE
  GROUP newsgroup
  HDR header [message-ID|range]
  HEAD [message-ID|number]
  HELP
  IHAVE message-ID
  LAST
  LIST [ACTIVE [wildmat]|ACTIVE.TIMES [wildmat]|COUNTS [wildmat]|DISTRIB.PATS|DISTRIBUTIONS|HEADERS [MSGID|RANGE]|MODERATORS|MOTD|NEWSGROUPS [wildmat]|OVERVIEW.FMT|SUBSCRIPTIONS [wildmat]]
  LISTGROUP [newsgroup [range]]
  MODE READER
  NEWGROUPS [yy]yymmdd hhmmss [GMT]
  NEWNEWS wildmat [yy]yymmdd hhmmss [GMT]
  NEXT
  OVER [range]
  POST
  QUIT
  STARTTLS
  STAT [message-ID|number]
  XGTITLE [wildmat]
  XHDR header [message-ID|range]
  XOVER [range]
  XPAT header message-ID|range pattern [pattern ...]
Report problems to <usenet@blaine.gmane.org>.
.
382 Begin TLS negotiation now
100 Legal commands
  ARTICLE [message-ID|number]
  AUTHINFO USER name|PASS password|SASL mechanism [initial-response]|GENERIC program [argument ...]
  BODY [message-ID|number]
  CAPABILITIES [keyword]
  COMPRESS DEFLATE
  DATE
  GROUP newsgroup
  HDR header [message-ID|range]
  HEAD [message-ID|number]
  HELP
  IHAVE message-ID
  LAST
  LIST [ACTIVE [wildmat]|ACTIVE.TIMES [wildmat]|COUNTS [wildmat]|DISTRIB.PATS|DISTRIBUTIONS|HEADERS [MSGID|RANGE]|MODERATORS|MOTD|NEWSGROUPS [wildmat]|OVERVIEW.FMT|SUBSCRIPTIONS [wildmat]]
  LISTGROUP [newsgroup [range]]
  MODE READER
  NEWGROUPS [yy]yymmdd hhmmss [GMT]
  NEWNEWS wildmat [yy]yymmdd hhmmss [GMT]
  NEXT
  OVER [range]
  POST
  QUIT
  STARTTLS
  STAT [message-ID|number]
  XGTITLE [wildmat]
  XHDR header [message-ID|range]
  XOVER [range]
  XPAT header message-ID|range pattern [pattern ...]
Report problems to <usenet@blaine.gmane.org>.
.

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-Add-atomic-window-support-to-Gnus.patch --]
[-- Type: text/x-patch, Size: 2800 bytes --]

From 48b94c157144230f9e955d4b94202ee152f3d820 Mon Sep 17 00:00:00 2001
From: Eric Abrahamsen <eric@ericabrahamsen.net>
Date: Thu, 23 May 2019 13:41:47 -0700
Subject: [PATCH] Add atomic window support to Gnus

* lisp/gnus/gnus-win.el (gnus-use-atomic-windows): New option
  governing behavior, default to nil.
  (gnus-configure-windows): Add and remove 'atomic-window parameter
  when switching window configurations.
* doc/misc/gnus.texi (Window Layout): Document.
---
 doc/misc/gnus.texi    |  6 ++++++
 lisp/gnus/gnus-win.el | 18 ++++++++++++++++++
 2 files changed, 24 insertions(+)

diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index b9c91a02a3..c09d9dc47f 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -22918,6 +22918,12 @@ Window Layout
 to fiddle with @code{gnus-tree-minimize-window} to avoid having the
 windows resized.
 
+@vindex gnus-use-atomic-windows
+Lastly, when you've got a multiple-window layout, Gnus can treat them
+as one ``atomic window'' with regards to help or completion pop-up
+windows (@pxref{Atomic Windows, , Atomic Windows, elisp}).  Set @code{gnus-use-atomic-windows}
+to a non-@code{nil} value to enable this.
+
 @subsection Window Configuration Names
 
 Here's a list of most of the currently known window configurations,
diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el
index 40c5b42d45..04d9e40884 100644
--- a/lisp/gnus/gnus-win.el
+++ b/lisp/gnus/gnus-win.el
@@ -39,6 +39,10 @@ gnus-use-full-window
   :group 'gnus-windows
   :type 'boolean)
 
+(defcustom gnus-use-atomic-windows nil
+  "If non-nil, Gnus' window compositions will be atomic."
+  :type 'boolean)
+
 (defcustom gnus-window-min-width 2
   "Minimum width of Gnus buffers."
   :group 'gnus-windows
@@ -402,6 +406,15 @@ gnus-configure-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
@@ -423,6 +436,11 @@ gnus-configure-windows
           (set-buffer nntp-server-buffer)
           (gnus-configure-frame split)
           (run-hooks 'gnus-configure-windows-hook)
+
+	  (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)))))))))
-- 
2.21.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* bug#35873: Add atomic window support to Gnus
  2019-05-23 20:45 bug#35873: Add atomic window support to Gnus Eric Abrahamsen
@ 2019-06-21  9:10 ` Noam Postavsky
  2019-06-21 15:11   ` Eric Abrahamsen
  2019-06-22 11:55 ` Lars Ingebrigtsen
  1 sibling, 1 reply; 16+ messages in thread
From: Noam Postavsky @ 2019-06-21  9:10 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: 35873

severity 35873 wishlist
tags 35873 + patch
quit

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> The attached patch adds atomic window support with a new customization
> option, `gnus-use-atomic-windows', defaulting to nil. If t, a
> multi-window Gnus layout will be treated as a single window when other
> code pops up buffers. Ie, your completions buffer won't end up squished
> between the summary and article buffers.
>
> I'm pretty sure I've done the elisp manual cross reference incorrectly.

> +windows (@pxref{Atomic Windows, , Atomic Windows, elisp}).

I believe the correct form would be:

    (@pxref{Atomic Windows,,, elisp, The Emacs Lisp Reference Manual})

That is, no need to repeat the topic title, as it's the same as the node
name.  But the printed manual name is needed as the last argument.  See
(info "(texinfo) Four and Five Arguments"), and grep for xref.*elisp in
doc/ for similar examples.

I guess the code part of the patch is alright, but I'm not too familiar
with how atomic windows work.





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#35873: Add atomic window support to Gnus
  2019-06-21  9:10 ` Noam Postavsky
@ 2019-06-21 15:11   ` Eric Abrahamsen
  0 siblings, 0 replies; 16+ messages in thread
From: Eric Abrahamsen @ 2019-06-21 15:11 UTC (permalink / raw)
  To: 35873

Noam Postavsky <npostavs@gmail.com> writes:

> severity 35873 wishlist
> tags 35873 + patch
> quit
>
> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>
>> The attached patch adds atomic window support with a new customization
>> option, `gnus-use-atomic-windows', defaulting to nil. If t, a
>> multi-window Gnus layout will be treated as a single window when other
>> code pops up buffers. Ie, your completions buffer won't end up squished
>> between the summary and article buffers.
>>
>> I'm pretty sure I've done the elisp manual cross reference incorrectly.
>
>> +windows (@pxref{Atomic Windows, , Atomic Windows, elisp}).
>
> I believe the correct form would be:
>
>     (@pxref{Atomic Windows,,, elisp, The Emacs Lisp Reference Manual})
>
> That is, no need to repeat the topic title, as it's the same as the node
> name.  But the printed manual name is needed as the last argument.  See
> (info "(texinfo) Four and Five Arguments"), and grep for xref.*elisp in
> doc/ for similar examples.

Okay, thanks -- I'd read the texinfo manual but found that part fairly
confusing.

> I guess the code part of the patch is alright, but I'm not too familiar
> with how atomic windows work.

I've since had a back-and-forth with Martin about messing more with
window management in Gnus, and am hoping to get a little farther with
that. (Or maybe I should Just Say No to mission creep, and try to get
this patch in...)






^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#35873: Add atomic window support to Gnus
  2019-05-23 20:45 bug#35873: Add atomic window support to Gnus Eric Abrahamsen
  2019-06-21  9:10 ` Noam Postavsky
@ 2019-06-22 11:55 ` Lars Ingebrigtsen
  2019-06-22 16:41   ` Eric Abrahamsen
  1 sibling, 1 reply; 16+ messages in thread
From: Lars Ingebrigtsen @ 2019-06-22 11:55 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: 35873

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> The attached patch adds atomic window support with a new customization
> option, `gnus-use-atomic-windows', defaulting to nil. If t, a
> multi-window Gnus layout will be treated as a single window when other
> code pops up buffers. Ie, your completions buffer won't end up squished
> between the summary and article buffers.

I'm not familiar with the atomic window stuff at all -- I don't use
pop-up windows and all the newfangled stuff kids today use -- but the
feature sounds sensible to me, so go ahead and apply (unless you wanted
to do this in another way, which you alluded to in a subsequent
message)...

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#35873: Add atomic window support to Gnus
  2019-06-22 11:55 ` Lars Ingebrigtsen
@ 2019-06-22 16:41   ` Eric Abrahamsen
  2019-09-16 21:05     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 16+ messages in thread
From: Eric Abrahamsen @ 2019-06-22 16:41 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 35873

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>
>> The attached patch adds atomic window support with a new customization
>> option, `gnus-use-atomic-windows', defaulting to nil. If t, a
>> multi-window Gnus layout will be treated as a single window when other
>> code pops up buffers. Ie, your completions buffer won't end up squished
>> between the summary and article buffers.
>
> I'm not familiar with the atomic window stuff at all -- I don't use
> pop-up windows and all the newfangled stuff kids today use -- but the
> feature sounds sensible to me, so go ahead and apply (unless you wanted
> to do this in another way, which you alluded to in a subsequent
> message)...

Well, but even *Completion* buffers are pop-up buffers... Maybe helm
users, in particular, would be bothered by this.

I do want to pursue the other avenue a bit, but if that doesn't work out
or looks like too much effort, I'll push this.

Thanks,
Eric





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#35873: Add atomic window support to Gnus
  2019-06-22 16:41   ` Eric Abrahamsen
@ 2019-09-16 21:05     ` Lars Ingebrigtsen
  2019-09-16 22:42       ` Eric Abrahamsen
  0 siblings, 1 reply; 16+ messages in thread
From: Lars Ingebrigtsen @ 2019-09-16 21:05 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: 35873

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> I do want to pursue the other avenue a bit, but if that doesn't work out
> or looks like too much effort, I'll push this.

That was twelve weeks ago -- has there been any further progress here,
or should this bug report be closed?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#35873: Add atomic window support to Gnus
  2019-09-16 21:05     ` Lars Ingebrigtsen
@ 2019-09-16 22:42       ` Eric Abrahamsen
  2019-09-16 22:43         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 16+ messages in thread
From: Eric Abrahamsen @ 2019-09-16 22:42 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 35873

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>
>> I do want to pursue the other avenue a bit, but if that doesn't work out
>> or looks like too much effort, I'll push this.
>
> That was twelve weeks ago -- has there been any further progress here,
> or should this bug report be closed?

The "other avenue" hasn't gone anywhere, at least not for now, so I
would still like to push this. It's fairly self-contained, and seems to
do the right thing. I'm getting on a plane in a bit, but when I've
settled a bit I'll look at the patch again and push.

Eric





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#35873: Add atomic window support to Gnus
  2019-09-16 22:42       ` Eric Abrahamsen
@ 2019-09-16 22:43         ` Lars Ingebrigtsen
  2019-09-19 17:21           ` Eric Abrahamsen
  0 siblings, 1 reply; 16+ messages in thread
From: Lars Ingebrigtsen @ 2019-09-16 22:43 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: 35873

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> The "other avenue" hasn't gone anywhere, at least not for now, so I
> would still like to push this. It's fairly self-contained, and seems to
> do the right thing. I'm getting on a plane in a bit, but when I've
> settled a bit I'll look at the patch again and push.

Sounds good.  :-)

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#35873: Add atomic window support to Gnus
  2019-09-16 22:43         ` Lars Ingebrigtsen
@ 2019-09-19 17:21           ` Eric Abrahamsen
  2019-09-20  8:13             ` martin rudalics
  0 siblings, 1 reply; 16+ messages in thread
From: Eric Abrahamsen @ 2019-09-19 17:21 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 35873

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>
>> The "other avenue" hasn't gone anywhere, at least not for now, so I
>> would still like to push this. It's fairly self-contained, and seems to
>> do the right thing. I'm getting on a plane in a bit, but when I've
>> settled a bit I'll look at the patch again and push.
>
> Sounds good.  :-)

I updated the patch with Martin's suggestion, and am back to running
this daily. One thing I noticed is that (in this case in my Gnorb
package) running `delete-other-windows' from a Gnus window will now
result in one of these:

delete-other-windows: Root of atomic window is root window of its frame

That error is expected with atomic windows. I can change Gnorb to not
use `delete-other-windows' (it shouldn't be using that anyway), but I
wonder if that's likely to cause an unacceptable amount of friction with
other packages/user code. (While noting that this behavior is off by
default.)

WDYT?





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#35873: Add atomic window support to Gnus
  2019-09-19 17:21           ` Eric Abrahamsen
@ 2019-09-20  8:13             ` martin rudalics
  2019-09-20 18:12               ` Eric Abrahamsen
  0 siblings, 1 reply; 16+ messages in thread
From: martin rudalics @ 2019-09-20  8:13 UTC (permalink / raw)
  To: Eric Abrahamsen, Lars Ingebrigtsen; +Cc: 35873

 > I updated the patch with Martin's suggestion, and am back to running
 > this daily. One thing I noticed is that (in this case in my Gnorb
 > package) running `delete-other-windows' from a Gnus window will now
 > result in one of these:
 >
 > delete-other-windows: Root of atomic window is root window of its frame
 >
 > That error is expected with atomic windows. I can change Gnorb to not
 > use `delete-other-windows' (it shouldn't be using that anyway), but I
 > wonder if that's likely to cause an unacceptable amount of friction with
 > other packages/user code. (While noting that this behavior is off by
 > default.)

You can also specify a function in the 'delete-other-windows'
parameter of any window involved.  One that dissolves atomicity, for
example.

martin





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#35873: Add atomic window support to Gnus
  2019-09-20  8:13             ` martin rudalics
@ 2019-09-20 18:12               ` Eric Abrahamsen
  2019-09-20 19:28                 ` Eric Abrahamsen
  0 siblings, 1 reply; 16+ messages in thread
From: Eric Abrahamsen @ 2019-09-20 18:12 UTC (permalink / raw)
  To: martin rudalics; +Cc: Lars Ingebrigtsen, 35873

martin rudalics <rudalics@gmx.at> writes:

>> I updated the patch with Martin's suggestion, and am back to running
>> this daily. One thing I noticed is that (in this case in my Gnorb
>> package) running `delete-other-windows' from a Gnus window will now
>> result in one of these:
>>
>> delete-other-windows: Root of atomic window is root window of its frame
>>
>> That error is expected with atomic windows. I can change Gnorb to not
>> use `delete-other-windows' (it shouldn't be using that anyway), but I
>> wonder if that's likely to cause an unacceptable amount of friction with
>> other packages/user code. (While noting that this behavior is off by
>> default.)
>
> You can also specify a function in the 'delete-other-windows'
> parameter of any window involved.  One that dissolves atomicity, for
> example.

Oh, excellent! I don't think I'll actually use that yet -- I'll fix my
own package not to call `delete-other-windows', then ask folks to enable
this feature and watch out for the error, and hopefully bug reports will
show how `delete-other-windows' might be being used in the wild. Then we
can look at how best to implement the d-o-w parameter for Gnus windows.

Thanks,
Eric





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#35873: Add atomic window support to Gnus
  2019-09-20 18:12               ` Eric Abrahamsen
@ 2019-09-20 19:28                 ` Eric Abrahamsen
  2019-09-20 20:19                   ` Lars Ingebrigtsen
  0 siblings, 1 reply; 16+ messages in thread
From: Eric Abrahamsen @ 2019-09-20 19:28 UTC (permalink / raw)
  To: martin rudalics; +Cc: Lars Ingebrigtsen, 35873

[-- Attachment #1: Type: text/plain, Size: 1340 bytes --]

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> martin rudalics <rudalics@gmx.at> writes:
>
>>> I updated the patch with Martin's suggestion, and am back to running
>>> this daily. One thing I noticed is that (in this case in my Gnorb
>>> package) running `delete-other-windows' from a Gnus window will now
>>> result in one of these:
>>>
>>> delete-other-windows: Root of atomic window is root window of its frame
>>>
>>> That error is expected with atomic windows. I can change Gnorb to not
>>> use `delete-other-windows' (it shouldn't be using that anyway), but I
>>> wonder if that's likely to cause an unacceptable amount of friction with
>>> other packages/user code. (While noting that this behavior is off by
>>> default.)
>>
>> You can also specify a function in the 'delete-other-windows'
>> parameter of any window involved.  One that dissolves atomicity, for
>> example.
>
> Oh, excellent! I don't think I'll actually use that yet -- I'll fix my
> own package not to call `delete-other-windows', then ask folks to enable
> this feature and watch out for the error, and hopefully bug reports will
> show how `delete-other-windows' might be being used in the wild. Then we
> can look at how best to implement the d-o-w parameter for Gnus windows.

There's the patch as it stands. I'll push in a bit if there's no objection.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-New-option-for-making-Gnus-window-layouts-atomic.patch --]
[-- Type: text/x-patch, Size: 3112 bytes --]

From 1ac1048dff4f2ddae5dec9eee75c0a4122c3feb8 Mon Sep 17 00:00:00 2001
From: Eric Abrahamsen <eric@ericabrahamsen.net>
Date: Sun, 21 Apr 2019 11:04:20 -0700
Subject: [PATCH] New option for making Gnus window layouts atomic

* lisp/gnus/gnus-win.el (gnus-use-atomic-windows): New boolean
  customization option.
  (gnus-configure-windows): When removing old window layouts, check
  for and remove atomicity.
  (gnus-configure-windows): When gnus-use-atomic-windows is non-nil,
  make Gnus window layouts atomic.
* doc/misc/gnus.texi (Window Layout): Document.
---
 doc/misc/gnus.texi    |  8 ++++++++
 lisp/gnus/gnus-win.el | 20 ++++++++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index fb9581f985..d535c1a49e 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -22923,6 +22923,14 @@ Window Layout
 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,
diff --git a/lisp/gnus/gnus-win.el b/lisp/gnus/gnus-win.el
index e6906e99bb..c6a9832f30 100644
--- a/lisp/gnus/gnus-win.el
+++ b/lisp/gnus/gnus-win.el
@@ -39,6 +39,10 @@ gnus-use-full-window
   :group 'gnus-windows
   :type 'boolean)
 
+(defcustom gnus-use-atomic-windows t
+  "If non-nil, Gnus' window compositions will be atomic."
+  :type 'boolean)
+
 (defcustom gnus-window-min-width 2
   "Minimum width of Gnus buffers."
   :group 'gnus-windows
@@ -402,6 +406,15 @@ gnus-configure-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
@@ -423,6 +436,13 @@ gnus-configure-windows
           (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)))))))))
-- 
2.23.0


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* bug#35873: Add atomic window support to Gnus
  2019-09-20 19:28                 ` Eric Abrahamsen
@ 2019-09-20 20:19                   ` Lars Ingebrigtsen
  2019-09-20 20:41                     ` Eric Abrahamsen
  2019-09-20 20:49                     ` Eric Abrahamsen
  0 siblings, 2 replies; 16+ messages in thread
From: Lars Ingebrigtsen @ 2019-09-20 20:19 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: 35873

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> There's the patch as it stands. I'll push in a bit if there's no objection.

I've never used the atomic window stuff, so I'm probably not a good
judge here, but it looked logical to me.  It should have a NEWS entry,
though.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#35873: Add atomic window support to Gnus
  2019-09-20 20:19                   ` Lars Ingebrigtsen
@ 2019-09-20 20:41                     ` Eric Abrahamsen
  2019-09-28 18:00                       ` Lars Ingebrigtsen
  2019-09-20 20:49                     ` Eric Abrahamsen
  1 sibling, 1 reply; 16+ messages in thread
From: Eric Abrahamsen @ 2019-09-20 20:41 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 35873

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>
>> There's the patch as it stands. I'll push in a bit if there's no objection.
>
> I've never used the atomic window stuff, so I'm probably not a good
> judge here, but it looked logical to me.  It should have a NEWS entry,
> though.

Ah, I was wondering about that. I'll add that as well, then push.

Thanks,
Eric





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#35873: Add atomic window support to Gnus
  2019-09-20 20:19                   ` Lars Ingebrigtsen
  2019-09-20 20:41                     ` Eric Abrahamsen
@ 2019-09-20 20:49                     ` Eric Abrahamsen
  1 sibling, 0 replies; 16+ messages in thread
From: Eric Abrahamsen @ 2019-09-20 20:49 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 35873


On 09/20/19 22:19 PM, Lars Ingebrigtsen wrote:
> Eric Abrahamsen <eric@ericabrahamsen.net> writes:
>
>> There's the patch as it stands. I'll push in a bit if there's no objection.
>
> I've never used the atomic window stuff, so I'm probably not a good
> judge here, but it looked logical to me.  It should have a NEWS entry,
> though.

Okay, I've added a NEWS entry, and also a :version tag to the new
option. Hopefully we're good to go.





^ permalink raw reply	[flat|nested] 16+ messages in thread

* bug#35873: Add atomic window support to Gnus
  2019-09-20 20:41                     ` Eric Abrahamsen
@ 2019-09-28 18:00                       ` Lars Ingebrigtsen
  0 siblings, 0 replies; 16+ messages in thread
From: Lars Ingebrigtsen @ 2019-09-28 18:00 UTC (permalink / raw)
  To: Eric Abrahamsen; +Cc: 35873

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> Ah, I was wondering about that. I'll add that as well, then push.

This is now on the trunk, so I'm closing this bug report.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2019-09-28 18:00 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-05-23 20:45 bug#35873: Add atomic window support to Gnus Eric Abrahamsen
2019-06-21  9:10 ` Noam Postavsky
2019-06-21 15:11   ` Eric Abrahamsen
2019-06-22 11:55 ` Lars Ingebrigtsen
2019-06-22 16:41   ` Eric Abrahamsen
2019-09-16 21:05     ` Lars Ingebrigtsen
2019-09-16 22:42       ` Eric Abrahamsen
2019-09-16 22:43         ` Lars Ingebrigtsen
2019-09-19 17:21           ` Eric Abrahamsen
2019-09-20  8:13             ` martin rudalics
2019-09-20 18:12               ` Eric Abrahamsen
2019-09-20 19:28                 ` Eric Abrahamsen
2019-09-20 20:19                   ` Lars Ingebrigtsen
2019-09-20 20:41                     ` Eric Abrahamsen
2019-09-28 18:00                       ` Lars Ingebrigtsen
2019-09-20 20:49                     ` Eric Abrahamsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).