chiark / gitweb /
atoms.lisp: Rewrite `update-undo-redo-sensitivity'.
[atoms] / atoms.lisp
index af9a21cf4245f1956937528efc75e5df3c5597fd..c68a6677ff546fa43de55c94679938250164acc9 100644 (file)
@@ -1000,12 +1000,11 @@ (defun action-new-game (window)
 
 (defun update-undo-redo-sensitivity (window)
   (with-slots (actions game) window
-    (setf (gtk:action-sensitive-p
-          (gtk:action-group-get-action actions "undo"))
-         (undo-list game)
-         (gtk:action-sensitive-p
-          (gtk:action-group-get-action actions "redo"))
-         (redo-list game))))
+    (flet ((set-sensitive (act-name sensitivep)
+            (let ((act (gtk:action-group-get-action actions act-name)))
+              (setf (gtk:action-sensitive-p act) sensitivep))))
+      (set-sensitive "undo" (undo-list game))
+      (set-sensitive "redo" (redo-list game)))))
 
 (defmethod notify progn
     ((window atom-game-window) (game atom-game) aspect &key)