Mercurial > hg > indyvon
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))