X-Git-Url: https://git.hcoop.net/clinton/lisp-on-lines.git/blobdiff_plain/e1645f63189477f1b39a173a41fcbbfefb5e88a6..4d9b3520082ed3aea25a384d96980ce3ca31d2a1:/src/standard-wrappers.lisp diff --git a/src/standard-wrappers.lisp b/src/standard-wrappers.lisp index 43151ca..110bdd3 100644 --- a/src/standard-wrappers.lisp +++ b/src/standard-wrappers.lisp @@ -27,50 +27,85 @@ (define-layered-class description :in-layer wrap-link () - ((link :initarg :link :initform nil :special t :accessor link))) + ((link :initarg :link-action + :initarg :action + :initform nil :special t :accessor link-action))) -(defdisplay - :in-layer wrap-link :around (description object) - (let ((link (link description))) +(defaction call-action-with-component-and-object ((self component) action-id object) + (funcall (ucw::find-action (ucw::context.current-frame *context*) action-id) + self + object)) - (with-inactive-layers (wrap-link) - (if *link-wrapped-p* - (call-next-method) - (let ((*link-wrapped-p* t)) - (