X-Git-Url: https://code.consxy.com/gitweb/gitweb.cgi?p=clnl;a=blobdiff_plain;f=src%2Fmain%2Fmodel.lisp;h=0ab8c101bf190198f7781452d4c92eb3b124fa3a;hp=3e7c9514705e2abd79832ea7f170c71017f7f9c3;hb=6cb99e3ea911190e3b73adab3a92e75ef36731f1;hpb=bd5ae8451480d80028599e004960f683bab0ad2f diff --git a/src/main/model.lisp b/src/main/model.lisp index 3e7c951..0ab8c10 100644 --- a/src/main/model.lisp +++ b/src/main/model.lisp @@ -308,7 +308,12 @@ DESCRIPTION: (loop :while (find button *enabled-forever-buttons* :test #'equal) ; The sleep is necessary so that it gives other threads time - :do (progn (clnl:run-commands (button-code button)) (sleep .001)))) + :do + (let + ((result (funcall *current-callback* (button-code button)))) + (when (eql :stop result) + (setf *enabled-forever-buttons* (remove button *enabled-forever-buttons* :test #'equal))) + (sleep .001)))) :name (format nil "Forever button: ~A" (button-display button)))) (t (funcall *current-callback* (button-code button)))))))