From 1e675522a9a91621636ec30e066d67def0d9eabe Mon Sep 17 00:00:00 2001 From: swapn Date: Sat, 20 Jan 2024 00:17:34 -0800 Subject: [PATCH] Extend `on-leave` and `on-enter` to sketch windows --- src/controllers.lisp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/controllers.lisp b/src/controllers.lisp index a8da296..6cfacfe 100644 --- a/src/controllers.lisp +++ b/src/controllers.lisp @@ -12,6 +12,7 @@ (defparameter *buttons* (list :left nil :middle nil :right nil)) (defparameter *current-entity* nil) +(defparameter *current-sketch* nil) (defmethod on-click (instance x y)) (defmethod on-middle-click (instance x y)) @@ -54,6 +55,13 @@ (on-enter entity)) (call-next-method))) +(defmethod on-hover :around ((instance sketch) ix iy) + (unless (eql *current-sketch* instance) + (on-leave *current-sketch*) + (setf *current-sketch* instance) + (on-enter instance)) + (call-next-method)) + (defmethod kit.sdl2:mousebutton-event ((instance sketch) state timestamp button x y) (let ((button (elt (list nil :left :middle :right) button)) (click-method (elt (list nil #'on-press #'on-middle-press #'on-right-press) button))