summaryrefslogtreecommitdiff
path: root/lisp/net/browse-url.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/net/browse-url.el')
-rw-r--r--lisp/net/browse-url.el36
1 files changed, 26 insertions, 10 deletions
diff --git a/lisp/net/browse-url.el b/lisp/net/browse-url.el
index cdda3ef98d7..8c2d4477df4 100644
--- a/lisp/net/browse-url.el
+++ b/lisp/net/browse-url.el
@@ -335,6 +335,13 @@ Defaults to the value of `browse-url-galeon-arguments' at the time
:type '(repeat (string :tag "Argument"))
:group 'browse-url)
+(defcustom browse-url-mozilla-new-window-is-tab nil
+ "*Whether to open up new windows in a tab or a new window.
+If non-nil, then open the URL in a new tab rather than a new window if
+`browse-url-mozilla' is asked to open it in a new window."
+ :type 'boolean
+ :group 'browse-url)
+
(defcustom browse-url-galeon-new-window-is-tab nil
"*Whether to open up new windows in a tab or a new window.
If non-nil, then open the URL in a new tab rather than a new window if
@@ -853,6 +860,10 @@ non-nil, load the document in a new Mozilla window, otherwise use a
random existing one. A non-nil interactive prefix argument reverses
the effect of `browse-url-new-window-flag'.
+If `browse-url-mozilla-new-window-is-tab' is non-nil, then whenever a
+document would otherwise be loaded in a new window, it is loaded in a
+new tab in an existing window instead.
+
When called non-interactively, optional second argument NEW-WINDOW is
used instead of `browse-url-new-window-flag'."
(interactive (browse-url-interactive-arg "URL: "))
@@ -862,16 +873,21 @@ used instead of `browse-url-new-window-flag'."
(setq url (replace-match
(format "%%%x" (string-to-char (match-string 0 url))) t t url)))
(let* ((process-environment (browse-url-process-environment))
- (process (apply 'start-process
- (concat "mozilla " url) nil
- browse-url-mozilla-program
- (append
- browse-url-mozilla-arguments
- (list "-remote"
- (concat "openURL("
- url
- (if new-window ",new-window")
- ")"))))))
+ (process
+ (apply 'start-process
+ (concat "mozilla " url) nil
+ browse-url-mozilla-program
+ (append
+ browse-url-mozilla-arguments
+ (list "-remote"
+ (concat "openURL("
+ url
+ (if (browse-url-maybe-new-window
+ new-window)
+ (if browse-url-mozilla-new-window-is-tab
+ ",new-tab")
+ ",new-window")
+ ")"))))))
(set-process-sentinel process
`(lambda (process change)
(browse-url-mozilla-sentinel process ,url)))))