From: Juri Linkov Date: Sat, 17 Aug 2019 22:40:32 +0000 (+0300) Subject: * lisp/frameset.el (frameset-restore): Make sure last-focus frame has focus. X-Git-Tag: emacs-27.0.90~1582 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6616806896060d95355c965599517d7065c19b86;p=emacs.git * lisp/frameset.el (frameset-restore): Make sure last-focus frame has focus. Call select-frame-set-input-focus to restore focus on the frame that had last-focus-update frame parameter before saving frameset. (Bug#36894) --- diff --git a/lisp/frameset.el b/lisp/frameset.el index 60b6fe38ad9..9a7a75f5efc 100644 --- a/lisp/frameset.el +++ b/lisp/frameset.el @@ -1346,6 +1346,16 @@ All keyword parameters default to nil." (error (delay-warning 'frameset (error-message-string err) :warning)))))) + ;; Make sure the frame with last-focus-update has focus. + (let ((last-focus-frame + (catch 'last-focus + (maphash (lambda (frame _) + (when (frame-parameter frame 'last-focus-update) + (throw 'last-focus frame))) + frameset--action-map)))) + (when last-focus-frame + (select-frame-set-input-focus last-focus-frame))) + ;; Make sure there's at least one visible frame. (unless (or (daemonp) (catch 'visible