diff options
Diffstat (limited to 'lisp/man.el')
| -rw-r--r-- | lisp/man.el | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lisp/man.el b/lisp/man.el index b18612ec8fc..0000a0d9a6e 100644 --- a/lisp/man.el +++ b/lisp/man.el @@ -231,6 +231,7 @@ This regular expression should start with a `^' character.") (make-variable-buffer-local 'Man-page-list) (make-variable-buffer-local 'Man-current-page) (make-variable-buffer-local 'Man-page-mode-string) +(make-variable-buffer-local 'Man-original-frame) (setq-default Man-sections-alist nil) (setq-default Man-refpages-alist nil) @@ -457,6 +458,9 @@ start a background process even if a buffer already exists and (require 'env) (message "Invoking man %s in background..." man-args) (setq buffer (generate-new-buffer bufname)) + (save-excursion + (set-buffer buffer) + (setq Man-original-frame (selected-frame))) (let ((process-environment (copy-sequence process-environment))) ;; Prevent any attempt to use display terminal fanciness. (setenv "TERM" "dumb") @@ -474,11 +478,17 @@ See the variable `Man-notify' for the different notification behaviors." (set-buffer man-buffer) (new-frame Man-frame-parameters)) ((eq Man-notify 'bully) + (and (frame-live-p Man-original-frame) + (select-frame Man-original-frame)) (pop-to-buffer man-buffer) (delete-other-windows)) ((eq Man-notify 'aggressive) + (and (frame-live-p Man-original-frame) + (select-frame Man-original-frame)) (pop-to-buffer man-buffer)) ((eq Man-notify 'friendly) + (and (frame-live-p Man-original-frame) + (select-frame Man-original-frame)) (display-buffer man-buffer 'not-this-window)) ((eq Man-notify 'polite) (beep) |
