@@ -26,22 +26,29 @@ public Draggable(Action<Vector2> handler, bool outputDeltaMovement = false)
26
26
27
27
protected override void RegisterCallbacksOnTarget ( )
28
28
{
29
- target . RegisterCallback ( new EventCallback < MouseDownEvent > ( OnMouseDown ) , TrickleDownEnum . NoTrickleDown ) ;
30
- target . RegisterCallback ( new EventCallback < MouseMoveEvent > ( OnMouseMove ) , TrickleDownEnum . NoTrickleDown ) ;
31
- target . RegisterCallback ( new EventCallback < MouseUpEvent > ( OnMouseUp ) , TrickleDownEnum . NoTrickleDown ) ;
29
+ target . RegisterCallback < MouseDownEvent > ( OnMouseDown ) ;
30
+ target . RegisterCallback < MouseUpEvent > ( OnMouseUp ) ;
31
+ target . RegisterCallback < MouseCaptureOutEvent > ( OnCaptureLost ) ;
32
32
}
33
33
34
34
protected override void UnregisterCallbacksFromTarget ( )
35
35
{
36
- target . UnregisterCallback ( new EventCallback < MouseDownEvent > ( OnMouseDown ) , TrickleDownEnum . NoTrickleDown ) ;
37
- target . UnregisterCallback ( new EventCallback < MouseMoveEvent > ( OnMouseMove ) , TrickleDownEnum . NoTrickleDown ) ;
38
- target . UnregisterCallback ( new EventCallback < MouseUpEvent > ( OnMouseUp ) , TrickleDownEnum . NoTrickleDown ) ;
36
+ target . UnregisterCallback < MouseCaptureOutEvent > ( OnCaptureLost ) ;
37
+ target . UnregisterCallback < MouseDownEvent > ( OnMouseDown ) ;
38
+ target . UnregisterCallback < MouseUpEvent > ( OnMouseUp ) ;
39
+ }
40
+
41
+ void OnCaptureLost ( MouseCaptureOutEvent e )
42
+ {
43
+ m_Active = false ;
44
+ target . UnregisterCallback < MouseMoveEvent > ( OnMouseMove ) ;
39
45
}
40
46
41
47
void OnMouseDown ( MouseDownEvent evt )
42
48
{
43
49
target . CaptureMouse ( ) ;
44
50
m_Active = true ;
51
+ target . RegisterCallback < MouseMoveEvent > ( OnMouseMove ) ;
45
52
evt . StopPropagation ( ) ;
46
53
}
47
54
@@ -63,6 +70,7 @@ void OnMouseMove(MouseMoveEvent evt)
63
70
void OnMouseUp ( MouseUpEvent evt )
64
71
{
65
72
m_Active = false ;
73
+ target . UnregisterCallback < MouseMoveEvent > ( OnMouseMove ) ;
66
74
67
75
if ( target . HasMouseCapture ( ) )
68
76
{
0 commit comments