diff --git a/tools/clog-builder-asdf-browser.lisp b/tools/clog-builder-asdf-browser.lisp index a83a67a..85fae02 100644 --- a/tools/clog-builder-asdf-browser.lisp +++ b/tools/clog-builder-asdf-browser.lisp @@ -7,7 +7,7 @@ :width 592 :height 435 :client-movement *client-side-movement*)) (panel (create-asdf-systems (window-content win)))) - (when *open-external* + (when (or *open-external* *open-external-panels-always*) (setf (checkedp (ext-open-source panel)) t)) (when *open-panels-as-popups* (setf (checkedp (pop-open-clog panel)) t)) diff --git a/tools/clog-builder-panels.lisp b/tools/clog-builder-panels.lisp index c8d35c8..1218a43 100644 --- a/tools/clog-builder-panels.lisp +++ b/tools/clog-builder-panels.lisp @@ -1072,13 +1072,13 @@ not a temporarily attached one when using select-control." (defun on-new-builder-page (obj) "Open new page" - (if *open-external* + (if (or *open-external* *open-external-panels-always*) (on-new-builder-panel-ext obj :open-ext t) (on-new-builder-panel obj :open-ext t))) (defun on-new-builder-basic-page (obj) "Menu item to open new basic HTML page" - (if *open-external* + (if (or *open-external* *open-external-panels-always*) (on-new-builder-panel-ext obj :open-ext :custom) (on-new-builder-panel obj :open-ext :custom))) @@ -1086,7 +1086,7 @@ not a temporarily attached one when using select-control." (input-dialog obj "Boot file Name?" (lambda (file) (when file - (if *open-external* + (if (or *open-external* *open-external-panels-always*) (on-new-builder-panel-ext obj :open-ext file) (on-new-builder-panel obj :open-ext file)))))) diff --git a/tools/clog-builder-project-tree.lisp b/tools/clog-builder-project-tree.lisp index 7de78c6..5df7962 100644 --- a/tools/clog-builder-project-tree.lisp +++ b/tools/clog-builder-project-tree.lisp @@ -5,7 +5,7 @@ (cond ((and (> (length item) 5) (equalp (subseq item (- (length item) 5)) ".clog")) (if (or (eq method :tab) - (and (not (eq method :here)) *open-external*)) + (and (not (eq method :here)) (or *open-external* *open-external-panels-always* ))) (on-new-builder-panel-ext panel :open-file item) ;; need ext for both (on-new-builder-panel panel :open-file item))) (t diff --git a/tools/clog-builder-settings.lisp b/tools/clog-builder-settings.lisp index ad49ca2..8f4d029 100644 --- a/tools/clog-builder-settings.lisp +++ b/tools/clog-builder-settings.lisp @@ -15,6 +15,8 @@ (defparameter *password-protect* nil) ;; Open panels and files in new browser tabs by default (defparameter *open-external* nil) +;; Force panels to open in new browser tabs +(defparameter *open-external-panels-always* nil) ;; Use clog-popup and extend desktop to popups (defparameter *open-external-using-clog-popups* t) ;; Open files in browser popups instead of tabs if browser allows diff --git a/tools/clog-builder.lisp b/tools/clog-builder.lisp index 96bf069..a365889 100644 --- a/tools/clog-builder.lisp +++ b/tools/clog-builder.lisp @@ -439,7 +439,7 @@ clog-builder window.") (on-open-file obj)))) (create-gui-menu-item file :content "New CLOG Panel Editor" :on-click (lambda (obj) - (if *open-external* + (if (or *open-external* *open-external-panels-always*) (on-new-builder-panel-ext obj) (on-new-builder-panel obj)))) (create-gui-menu-item file :content "New CLOG Panel Popup Editor" :on-click 'on-new-builder-page) @@ -706,6 +706,7 @@ clog-builder window.") (setf *open-external-source-in-popup* nil) (setf *open-panels-as-popups* nil) (setf *open-external-panels-in-popup* nil) + (setf *open-external-panels-always* nil) (setf *open-external* nil) (handler-case (uiop:run-program (list "./clogframe" diff --git a/tools/preferences.lisp.sample b/tools/preferences.lisp.sample index 007ef15..fe679e3 100644 --- a/tools/preferences.lisp.sample +++ b/tools/preferences.lisp.sample @@ -35,6 +35,8 @@ ;; Open panels and files in new browser tabs by default (setf *open-external* nil) +;; Force panels to open in new browser tabs +(setf *open-external-panels-always* nil) ;; Use clog-popup and extend desktop to popups (setf *open-external-using-clog-popups* t)