-: on-button-press ( win event user-data -- ? )
- drop swap [
- mouse-event>gesture [ <button-down> ] dip
- ] dip window send-button-down t ;
-
-: on-button-release ( win event user-data -- ? )
- drop swap [
- mouse-event>gesture [ <button-up> ] dip
- ] dip window send-button-up t ;
+:: on-button-press ( win event user-data -- ? )
+ win window :> world
+ event mouse-event>gesture :> ( modifiers button loc )
+ button {
+ { 8 [ ] }
+ { 9 [ ] }
+ [ modifiers swap <button-down> loc world
+ send-button-down ]
+ } case t ;
+
+:: on-button-release ( win event user-data -- ? )
+ win window :> world
+ event mouse-event>gesture :> ( modifiers button loc )
+ button {
+ { 8 [ world left-action send-action ] }
+ { 9 [ world right-action send-action ] }
+ [ modifiers swap <button-up> loc world
+ send-button-up ]
+ } case t ;