summaryrefslogtreecommitdiff
path: root/lisp/windmove.el
diff options
context:
space:
mode:
authorJuri Linkov <juri@linkov.net>2020-03-10 01:39:05 +0200
committerJuri Linkov <juri@linkov.net>2020-03-10 01:39:05 +0200
commita98c8f5a098cf646c282be67cce9fb7999d353d7 (patch)
tree927b65fd6de0b0a3c0e263933fbc7ef4ffc50b19 /lisp/windmove.el
parent199acd6270ea904e36846984887bad056d40f70b (diff)
downloademacs-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.el12
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