diff options
| author | Juri Linkov | 2019-08-18 01:40:32 +0300 |
|---|---|---|
| committer | Juri Linkov | 2019-08-18 01:40:32 +0300 |
| commit | 6616806896060d95355c965599517d7065c19b86 (patch) | |
| tree | a5e24222b921dbe886511e2dc3b00245b056a3b2 | |
| parent | c81c041f605afe9c9fb64d4f821a153dafd6f94d (diff) | |
| download | emacs-6616806896060d95355c965599517d7065c19b86.tar.gz emacs-6616806896060d95355c965599517d7065c19b86.zip | |
* 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)
| -rw-r--r-- | lisp/frameset.el | 10 |
1 files changed, 10 insertions, 0 deletions
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." | |||
| 1346 | (error | 1346 | (error |
| 1347 | (delay-warning 'frameset (error-message-string err) :warning)))))) | 1347 | (delay-warning 'frameset (error-message-string err) :warning)))))) |
| 1348 | 1348 | ||
| 1349 | ;; Make sure the frame with last-focus-update has focus. | ||
| 1350 | (let ((last-focus-frame | ||
| 1351 | (catch 'last-focus | ||
| 1352 | (maphash (lambda (frame _) | ||
| 1353 | (when (frame-parameter frame 'last-focus-update) | ||
| 1354 | (throw 'last-focus frame))) | ||
| 1355 | frameset--action-map)))) | ||
| 1356 | (when last-focus-frame | ||
| 1357 | (select-frame-set-input-focus last-focus-frame))) | ||
| 1358 | |||
| 1349 | ;; Make sure there's at least one visible frame. | 1359 | ;; Make sure there's at least one visible frame. |
| 1350 | (unless (or (daemonp) | 1360 | (unless (or (daemonp) |
| 1351 | (catch 'visible | 1361 | (catch 'visible |