]> gitweb.factorcode.org Git - factor.git/commitdiff
fix mouse wheel capture problems in win32 ui
authorerg <erg@trifocus.net>
Sat, 7 Oct 2006 03:05:51 +0000 (03:05 +0000)
committererg <erg@trifocus.net>
Sat, 7 Oct 2006 03:05:51 +0000 (03:05 +0000)
library/ui/windows/ui.factor

index 6e4ac074ff660c83521ecba3012eb63555bcd43b..b2a56fb146757bc7840d3c1179896d6450abfb56 100644 (file)
@@ -177,15 +177,18 @@ SYMBOL: hWnd
         { [ t ] [ "bad button" throw ] }
     } cond ;
 
+: capture-mouse? ( umsg -- ? )
+    { WM_LBUTTONDOWN WM_RBUTTONDOWN } member? ;
+
 : prepare-mouse ( hWnd uMsg wParam lParam -- button coordinate world )
     nip >r mouse-event>gesture r> mouse-coordinate rot window ;
 
 : handle-wm-buttondown ( hWnd uMsg wParam lParam -- )
-    >r pick SetCapture drop r>
+    >r over capture-mouse? [ pick SetCapture drop ] when r>
     prepare-mouse send-button-down ;
 
 : handle-wm-buttonup ( hWnd uMsg wParam lParam -- )
-    ReleaseCapture drop
+    pick capture-mouse? [ ReleaseCapture drop ] when
     prepare-mouse send-button-up ;
 
 : handle-wm-mousemove ( hWnd uMsg wParam lParam -- )