[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs
From: |
Juri Linkov |
Subject: |
bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs |
Date: |
Sun, 16 Jun 2024 09:58:10 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu) |
> +(defvar window-delete-frame-functions nil
> + "A list of functions to handle the frame deletion.
>
> I'd still prefer a tab-bar specific option (like 'tab-bar-save-frame-p'
> as mentioned earlier) for two reasons.
>
> The first reason is that 'window--delete' is an internal function of
> window.el. I wouldn't want an internal function run a hook "of its own"
> because that's difficult to explain to users. OTOH I suppose that a
> function like 'tab-bar-save-frame-p' should be callable from any other
> function too, as soon as the need arises.
>
> The second reason is that I wouldn't want "anyone" to inhibit frame
> deletion. Such a facility could have consequences I cannot fathom at
> the moment. Would we want 'delete-frame' to obey it too and possibly
> spare the frame?
Ok, here is the right patch:
diff --git a/lisp/window.el b/lisp/window.el
index b7bd59bc813..872110a8321 100644
--- a/lisp/window.el
+++ b/lisp/window.el
@@ -4120,6 +4120,8 @@ window-deletable-p
(let ((frame (window-frame window)))
(cond
+ ((and tab-bar-mode (> (length (funcall tab-bar-tabs-function frame)) 1))
+ '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
@@ -4979,6 +4981,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
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, (continued)
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, martin rudalics, 2024/06/12
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, Juri Linkov, 2024/06/13
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, martin rudalics, 2024/06/13
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, Juri Linkov, 2024/06/14
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, Juri Linkov, 2024/06/14
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, martin rudalics, 2024/06/15
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs,
Juri Linkov <=
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, martin rudalics, 2024/06/16
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, Al Haji-Ali, 2024/06/16
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, martin rudalics, 2024/06/17
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, Al Haji-Ali, 2024/06/17
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, martin rudalics, 2024/06/17
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, Al Haji-Ali, 2024/06/17
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, martin rudalics, 2024/06/18
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, Al Haji-Ali, 2024/06/18
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, Juri Linkov, 2024/06/19
- bug#71386: 29.1; Frame is auto-deleted even when it has multiple tabs, martin rudalics, 2024/06/19