diff options
author | Juri Linkov <juri@linkov.net> | 2020-03-10 01:39:05 +0200 |
---|---|---|
committer | Juri Linkov <juri@linkov.net> | 2020-03-10 01:39:05 +0200 |
commit | a98c8f5a098cf646c282be67cce9fb7999d353d7 (patch) | |
tree | 927b65fd6de0b0a3c0e263933fbc7ef4ffc50b19 /lisp/windmove.el | |
parent | 199acd6270ea904e36846984887bad056d40f70b (diff) | |
download | emacs-a98c8f5a098cf646c282be67cce9fb7999d353d7.tar.gz emacs-a98c8f5a098cf646c282be67cce9fb7999d353d7.tar.bz2 emacs-a98c8f5a098cf646c282be67cce9fb7999d353d7.zip |
Improve new-frame logic of windmove-display-in-direction (bug#39875)
* lisp/windmove.el (windmove-display-in-direction):
For frame-based logic use code similar to display-buffer-pop-up-frame.
Diffstat (limited to 'lisp/windmove.el')
-rw-r--r-- | lisp/windmove.el | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lisp/windmove.el b/lisp/windmove.el index 94d2b75210d..f96383197bd 100644 --- a/lisp/windmove.el +++ b/lisp/windmove.el @@ -475,10 +475,14 @@ When `switch-to-buffer-obey-display-actions' is non-nil, (setq type 'tab) (selected-window)) ((eq dir 'new-frame) - (window--maybe-raise-frame - (make-frame-on-current-monitor pop-up-frame-alist)) - (setq type 'frame) - (selected-window)) + (let* ((params (cdr (assq 'pop-up-frame-parameters alist))) + (pop-up-frame-alist (append params pop-up-frame-alist)) + (frame (make-frame-on-current-monitor + pop-up-frame-alist))) + (unless (cdr (assq 'inhibit-switch-frame alist)) + (window--maybe-raise-frame frame)) + (setq type 'frame) + (frame-selected-window frame))) ((eq dir 'same-window) (selected-window)) (t (window-in-direction |