summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Mendler <mail@daniel-mendler.de>2022-12-12 21:48:54 +0100
committerDaniel Mendler <mail@daniel-mendler.de>2022-12-12 21:49:33 +0100
commit6f74b675521ca9731eec120da01dd9e6d56af449 (patch)
treee3e636b14f26512fdce34abb198eb284205b1330
parent739a61b8c2e3d62651115734e731850ad46f7d93 (diff)
HACK: Work around suspected Emacs 29 regression
Is it possible that frames can have a dead root window?! Unfortunately I don't know how I managed to trigger the situation where (frame-live-p frame) returned t and (window-live-p (frame-root-window frame)) returned nil.
-rw-r--r--corfu.el6
1 files changed, 5 insertions, 1 deletions
diff --git a/corfu.el b/corfu.el
index 3a7b82c..3fcee9c 100644
--- a/corfu.el
+++ b/corfu.el
@@ -386,7 +386,11 @@ FRAME is the existing frame."
'resize-mode)))
(after-make-frame-functions)
(parent (window-frame)))
- (unless (and (frame-live-p frame) (eq (frame-parent frame) parent))
+ (unless (and (frame-live-p frame)
+ (eq (frame-parent frame) parent)
+ ;; XXX HACK: It seems the frame can be alive but have a dead window?
+ ;; Is this a Emacs 29 regression?
+ (window-live-p (frame-root-window frame)))
(when frame (delete-frame frame))
(setq frame (make-frame
`((parent-frame . ,parent)