From: martin rudalics via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <bug-gnu-emacs@gnu.org>
To: Juri Linkov <juri@linkov.net>
Cc: 59862@debbugs.gnu.org
Subject: bug#59862: quit-restore per window buffer
Date: Thu, 10 Oct 2024 16:54:02 +0200 [thread overview]
Message-ID: <9c103d92-c8f5-4fe7-934f-2f56219475b8@gmx.at> (raw)
In-Reply-To: <864j5ll110.fsf@mail.linkov.net>
> Because tabs have priority over frames. The precedence is:
> windows -> tabs -> frames. When there are many tabs
> then quit-restore-window should close tabs, and only
> on the last tab should delete the frame. This is bug#71386,
> but first need to finish bug#59862.
So which bug are we discussing here? Bug#59862 or Bug#71386?
>> I don't understand the problem yet. 'window-deletable-p' calls
>> 'frame-deletable-p' iff WINDOW is the root window of the frame. At this
>> time we can only either delete the frame or show another buffer in
>> WINDOW; tertium non datur. What am I missing?
>
> The third first-class citizen is the tab-bar.
But I haven't written anything for the tab-bar code. This is something
you have to provide. Earlier you proposed
diff --git a/lisp/window.el b/lisp/window.el
index 58120c919c7..82efb3c40ce 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -4120,6 +4120,11 @@ window-deletable-p
(let ((frame (window-frame window)))
(cond
+ ((and (eq (nth 1 (window-parameter window 'quit-restore)) 'tab)
+ (< (seq-count (lambda (w) (window-parameter w 'quit-restore))
+ (window-list-1 nil 'nomini))
+ 2))
+ 'tab)
((frame-root-window-p window)
;; WINDOW's frame can be deleted only if there are other frames
;; on the same terminal, and it does not contain the active
@@ -4990,6 +4995,9 @@ window--delete
(unless (and dedicated-only (not (window-dedicated-p window)))
(let ((deletable (window-deletable-p window)))
(cond
+ ((eq deletable 'tab)
+ (tab-bar-close-tab)
+ 'tab)
((eq deletable 'frame)
(let ((frame (window-frame window)))
(cond
@@ -5303,10 +5311,8 @@ quit-restore-window
((and (not prev-buffer)
(eq (nth 1 quit-restore) 'tab)
(eq (nth 3 quit-restore) buffer)
- (< (seq-count (lambda (w) (window-parameter w 'quit-restore))
- (window-list-1 nil 'nomini))
- 2))
- (tab-bar-close-tab)
+ (window--delete
+ window nil (memq bury-or-kill '(kill killing))))
;; If the previously selected window is still alive, select it.
(window--quit-restore-select-window quit-restore-2))
((and (not prev-buffer)
martin
next prev parent reply other threads:[~2024-10-10 14:54 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-12-06 17:32 bug#59862: quit-restore per window buffer Juri Linkov
2024-06-02 6:45 ` Juri Linkov
2024-06-03 9:34 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-06-03 9:53 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-06-03 16:09 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-06-04 6:53 ` Juri Linkov
2024-06-05 16:56 ` Juri Linkov
2024-06-11 6:52 ` Juri Linkov
2024-06-12 8:57 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-06-13 6:47 ` Juri Linkov
2024-06-13 8:21 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-06-14 17:35 ` Juri Linkov
2024-06-15 8:41 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-06-16 16:50 ` Juri Linkov
2024-06-17 14:48 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-08 16:49 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-09 6:58 ` Juri Linkov
2024-07-09 8:52 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-10 6:50 ` Juri Linkov
2024-07-10 9:16 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-11 6:47 ` Juri Linkov
2024-07-11 8:36 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-12 6:54 ` Juri Linkov
2024-07-12 8:20 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-14 7:49 ` Juri Linkov
2024-07-15 7:32 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-16 6:09 ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-16 6:09 ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
[not found] ` <87frs9kgve.fsf@>
2024-07-16 8:22 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-16 22:14 ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-16 22:14 ` Björn Bidar via Bug reports for GNU Emacs, the Swiss army knife of text editors
[not found] ` <871q3tc7da.fsf@>
2024-07-17 9:23 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-30 8:20 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-07-31 17:30 ` Juri Linkov
2024-08-01 6:37 ` Juri Linkov
2024-08-01 7:50 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-08-01 7:49 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-08-01 16:01 ` Juri Linkov
2024-10-08 17:53 ` Juri Linkov
2024-10-09 8:46 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-10-09 16:17 ` Juri Linkov
2024-10-10 14:54 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors [this message]
2024-10-10 18:28 ` Juri Linkov
2024-10-11 7:50 ` martin rudalics via Bug reports for GNU Emacs, the Swiss army knife of text editors
2024-10-13 6:18 ` Juri Linkov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9c103d92-c8f5-4fe7-934f-2f56219475b8@gmx.at \
--to=bug-gnu-emacs@gnu.org \
--cc=59862@debbugs.gnu.org \
--cc=juri@linkov.net \
--cc=rudalics@gmx.at \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).