diff --git a/source/clog-gui.lisp b/source/clog-gui.lisp index 1765be4..ad81274 100644 --- a/source/clog-gui.lisp +++ b/source/clog-gui.lisp @@ -1671,7 +1671,10 @@ Calls on-input with t if confirmed or nil if canceled." (focus ok) (set-on-click cancel (lambda (obj) (declare (ignore obj)) - (window-close win)) + (when modal + (window-end-modal win)) + (window-close win) + (funcall on-input nil)) :one-time t) (set-on-click ok (lambda (obj) (declare (ignore obj)) diff --git a/tools/clog-builder-ace.lisp b/tools/clog-builder-ace.lisp index 77b1707..d275951 100644 --- a/tools/clog-builder-ace.lisp +++ b/tools/clog-builder-ace.lisp @@ -38,7 +38,7 @@ l)))) l))) :meta "swank")) - ;; run apropos on symbol + ;; find symbol in sys-browser (js-execute editor (format nil "~A.commands.addCommand({ @@ -254,10 +254,8 @@ var endRange = ~:*~A.session.doc.indexToPosition(endIndex); (return (string-downcase (second form))))))))) ;; Expand region - (defun scan-exps (text) "Scan all expressions (and strings) in the text, return a list of start-end cons. - It parse the string TEXT without using READ functions." (let ((char-count 0) (backslash 0) diff --git a/tools/clog-builder-files.lisp b/tools/clog-builder-files.lisp index 4f87386..9b06df3 100644 --- a/tools/clog-builder-files.lisp +++ b/tools/clog-builder-files.lisp @@ -170,13 +170,14 @@ (alert-dialog win " +
cmd/ctrl-,Configure editor
F1Command Palette
cmd/alt-. Launch system browser
cmd/alt-[ Evaluate form
cmd/ctrl-s Save
ctl-=Expand region
opt/alt-mMacroexpand

Default Keybindings" - :width 400 :height 300 + :width 400 :height 350 :title "Help"))) (set-on-click btn-help #'on-help) (set-on-click m-helpk #'on-help)) diff --git a/tools/clog-builder-panels.lisp b/tools/clog-builder-panels.lisp index f8b655b..08dabcc 100644 --- a/tools/clog-builder-panels.lisp +++ b/tools/clog-builder-panels.lisp @@ -976,9 +976,9 @@ not a temporarily attached one when using select-control." (set-on-mouse-down content (lambda (obj data) (declare (ignore obj)) - (unless in-simulation - (when (drop-new-control app content data :win win) - (incf-next-id content)))))))) + (when (drop-new-control app content data :win win) + (setf is-dirty t) + (incf-next-id content))))))) (defun on-new-builder-page (obj) "Open new page" diff --git a/tools/clog-builder.lisp b/tools/clog-builder.lisp index ffedb14..d06ab88 100644 --- a/tools/clog-builder.lisp +++ b/tools/clog-builder.lisp @@ -161,12 +161,17 @@ clog-builder window.")

CLOG
The Common Lisp Omnificent GUI

- CLOG Builder + CLOG Builder
-
(c) 2022-2024 - David Botton

" +
(c) 2022-2024 - David Botton

+

+

+ Sponsor CLOG +
+ " img-clog-icon) - :width 220 - :height 230 + :width 400 + :height 250 :hidden t))) (add-class about "w3-animate-opacity") (window-center about) @@ -375,6 +380,16 @@ clog-builder window.") (declare (ignore obj)) (open-window (window body) "/dbadmin"))) (create-gui-menu-item opts :content "Edit preferences.lisp" :on-click 'on-opts-edit) + (let ((exter (create-button opts :content "-" :class *builder-menu-button-class*))) + (flet ((exter-text () + (if *open-external-with-emacs* + "open external files in emacs" + "open all files in builder"))) + (setf (text-value exter) (exter-text)) + (set-on-click exter (lambda (obj) + (declare (ignore obj)) + (setf *open-external-with-emacs* (not *open-external-with-emacs*)) + (setf (text-value exter) (exter-text)))))) (create-gui-menu-item win :content "Maximize" :on-click (lambda (obj) (when (current-window obj)