From 7108e1c040a911dc30147784eb88e752e483e5c3 Mon Sep 17 00:00:00 2001 From: Juanma Barranquero Date: Tue, 18 Feb 2014 18:33:37 +0100 Subject: [PATCH] lisp/frameset.el: Workaround bug#16793. lisp/frameset.el (frameset--restore-frame): When a frame is being reused and its root window is not alive, delete all the frame's windows before restoring the window state. --- lisp/ChangeLog | 6 ++++++ lisp/frameset.el | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 155063592b6..e797663b70a 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2014-02-18 Juanma Barranquero + + * frameset.el (frameset--restore-frame): When a frame is being reused + and its root window is not alive, delete all the frame's windows before + restoring the window state. This works around the issue in bug#16793. + 2014-02-18 Glenn Morris * textmodes/remember.el (remember-data-directory) diff --git a/lisp/frameset.el b/lisp/frameset.el index 977cc8433d4..f0b3c79f776 100644 --- a/lisp/frameset.el +++ b/lisp/frameset.el @@ -932,7 +932,11 @@ is the parameter alist of the frame being restored. Internal use only." (setq frame (frameset--find-frame-if nil display)))) ;; If found, remove from the list. (when frame - (setq frameset--reuse-list (delq frame frameset--reuse-list))) + (setq frameset--reuse-list (delq frame frameset--reuse-list)) + ;; Workaround for feature/bug#16793 + (let ((root (frame-root-window frame))) + (unless (window-live-p root) + (delete-other-windows-internal (frame-first-window root) root)))) frame)) (defun frameset--initial-params (parameters) -- 2.39.2