changeset 79:5fd50e400124

Fixed processing of mouse-released events.
author Mikhail Kryshen <mikhail@kryshen.net>
date Wed, 01 Sep 2010 22:24:17 +0400
parents 4c0f2af742ba
children 880ae8e03408
files src/net/kryshen/indyvon/core.clj
diffstat 1 files changed, 12 insertions(+), 6 deletions(-) [+]
line diff
     1.1 --- a/src/net/kryshen/indyvon/core.clj	Wed Sep 01 21:13:55 2010 +0400
     1.2 +++ b/src/net/kryshen/indyvon/core.clj	Wed Sep 01 22:24:17 2010 +0400
     1.3 @@ -498,10 +498,17 @@
     1.4  (defn- dispatch-mouse-button
     1.5    [picked-ref hovered-ref ^java.awt.event.MouseEvent event]
     1.6    (let [id (awt-events (.getID event))
     1.7 -        hovered (if (= id :mouse-pressed)
     1.8 -                  (dosync (ref-set picked-ref @hovered-ref))
     1.9 -                  @hovered-ref)]
    1.10 -    (translate-and-dispatch hovered true event id)))
    1.11 +        nodes (case id
    1.12 +               :mouse-pressed
    1.13 +               (dosync
    1.14 +                (ref-set picked-ref @hovered-ref))
    1.15 +               :mouse-released
    1.16 +               (dosync
    1.17 +                (let [picked @picked-ref]
    1.18 +                  (ref-set picked-ref nil)
    1.19 +                  picked))
    1.20 +               @hovered-ref)]
    1.21 +    (translate-and-dispatch nodes true event id)))
    1.22  
    1.23  (defn root-event-dispatcher []
    1.24    (let [tree-r (ref {})   ; register
    1.25 @@ -535,8 +542,7 @@
    1.26       (mousePressed [this event]
    1.27          (dispatch-mouse-button picked hovered event))
    1.28       (mouseReleased [this event]
    1.29 -        (translate-and-dispatch @picked true event))
    1.30 -        ;;(dispatch-mouse-button picked hovered event))
    1.31 +        (dispatch-mouse-button picked hovered event))
    1.32       MouseMotionListener
    1.33       (mouseDragged [this event]
    1.34          (translate-and-dispatch @picked true event))