Skip to content
This repository was archived by the owner on Apr 29, 2021. It is now read-only.

Commit 668a515

Browse files
committed
[Format] Surround Drag&Drop feature with #if pair
1 parent 3f9f23f commit 668a515

File tree

8 files changed

+130
-94
lines changed

8 files changed

+130
-94
lines changed

Runtime/editor/editor_mouse_tracking.cs

Lines changed: 30 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using UnityEditor;
55

66
namespace Unity.UIWidgets.gestures {
7+
#if UNITY_EDITOR
78
public partial class MouseTracker {
89
bool _enableDragFromEditorRelease = false;
910

@@ -18,8 +19,6 @@ evt is PointerDragFromEditorHoverEvent ||
1819
evt is PointerDragFromEditorExitEvent) {
1920
if (!this._lastMouseEvent.ContainsKey(deviceId) ||
2021
this._lastMouseEvent[deviceId].position != evt.position) {
21-
// Only schedule a frame if we have our first event, or if the
22-
// location of the mouse has changed, and only if there are tracked annotations.
2322
this._scheduleDragFromEditorMousePositionCheck();
2423
}
2524

@@ -30,40 +29,41 @@ evt is PointerDragFromEditorHoverEvent ||
3029
void _scheduleDragFromEditorReleaseCheck() {
3130
DragAndDrop.AcceptDrag();
3231

33-
var lastMouseEvent = new List<(PointerEvent, int)>();
32+
var lastMouseEvent = new List<PointerEvent>();
3433
foreach (int deviceId in this._lastMouseEvent.Keys) {
35-
lastMouseEvent.Add((this._lastMouseEvent[deviceId], deviceId));
36-
}
37-
38-
SchedulerBinding.instance.addPostFrameCallback(_ => {
39-
foreach (var lastEvent in lastMouseEvent) {
40-
MouseTrackerAnnotation hit = this.annotationFinder(lastEvent.Item1.position);
41-
42-
if (hit == null) {
43-
foreach (_TrackedAnnotation trackedAnnotation in this._trackedAnnotations.Values) {
44-
if (trackedAnnotation.activeDevices.Contains(lastEvent.Item2)) {
45-
trackedAnnotation.activeDevices.Remove(lastEvent.Item2);
34+
var _deviceId = deviceId;
35+
lastMouseEvent.Add(this._lastMouseEvent[_deviceId]);
36+
SchedulerBinding.instance.addPostFrameCallback(_ => {
37+
foreach (var lastEvent in lastMouseEvent) {
38+
MouseTrackerAnnotation hit = this.annotationFinder(lastEvent.position);
39+
40+
if (hit == null) {
41+
foreach (_TrackedAnnotation trackedAnnotation in this._trackedAnnotations.Values) {
42+
if (trackedAnnotation.activeDevices.Contains(_deviceId)) {
43+
trackedAnnotation.activeDevices.Remove(_deviceId);
44+
}
4645
}
46+
47+
return;
4748
}
4849

49-
return;
50-
}
50+
_TrackedAnnotation hitAnnotation = this._findAnnotation(hit);
5151

52-
_TrackedAnnotation hitAnnotation = this._findAnnotation(hit);
52+
// release
53+
if (hitAnnotation.activeDevices.Contains(_deviceId)) {
54+
if (hitAnnotation.annotation?.onDragFromEditorRelease != null) {
55+
hitAnnotation.annotation.onDragFromEditorRelease(
56+
PointerDragFromEditorReleaseEvent
57+
.fromDragFromEditorEvent(
58+
lastEvent, DragAndDrop.objectReferences));
59+
}
5360

54-
// release
55-
if (hitAnnotation.activeDevices.Contains(lastEvent.Item2)) {
56-
if (hitAnnotation.annotation?.onDragFromEditorRelease != null) {
57-
hitAnnotation.annotation.onDragFromEditorRelease(
58-
PointerDragFromEditorReleaseEvent
59-
.fromDragFromEditorEvent(
60-
lastEvent.Item1, DragAndDrop.objectReferences));
61+
hitAnnotation.activeDevices.Remove(_deviceId);
6162
}
62-
63-
hitAnnotation.activeDevices.Remove(lastEvent.Item2);
6463
}
65-
}
66-
});
64+
});
65+
}
66+
6767
SchedulerBinding.instance.scheduleFrame();
6868
}
6969

@@ -186,4 +186,6 @@ void exitAllDevices(_TrackedAnnotation trackedAnnotation) {
186186
}
187187
}
188188
}
189+
190+
#endif
189191
}

Runtime/gestures/binding.cs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,11 @@ void _handlePointerEvent(PointerEvent evt) {
9494
if (hitTestResult != null ||
9595
evt is PointerHoverEvent ||
9696
evt is PointerAddedEvent ||
97-
evt is PointerRemovedEvent ||
98-
evt is PointerDragFromEditorHoverEvent ||
99-
evt is PointerDragFromEditorReleaseEvent
97+
evt is PointerRemovedEvent
98+
#if UNITY_EDITOR
99+
|| evt is PointerDragFromEditorHoverEvent
100+
|| evt is PointerDragFromEditorReleaseEvent
101+
#endif
100102
) {
101103
this.dispatchEvent(evt, hitTestResult);
102104
}
@@ -119,9 +121,12 @@ public void dispatchEvent(PointerEvent evt, HitTestResult hitTestResult) {
119121
if (hitTestResult == null) {
120122
D.assert(evt is PointerHoverEvent ||
121123
evt is PointerAddedEvent ||
122-
evt is PointerRemovedEvent ||
123-
evt is PointerDragFromEditorHoverEvent ||
124-
evt is PointerDragFromEditorReleaseEvent);
124+
evt is PointerRemovedEvent
125+
#if UNITY_EDITOR
126+
|| evt is PointerDragFromEditorHoverEvent
127+
|| evt is PointerDragFromEditorReleaseEvent
128+
#endif
129+
);
125130
try {
126131
this.pointerRouter.route(evt);
127132
}

Runtime/gestures/converter.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,7 @@ public static IEnumerable<PointerEvent> expand(IEnumerable<PointerData> data, fl
197197
}
198198
}
199199
break;
200+
#if UNITY_EDITOR
200201
case PointerChange.dragFromEditorMove: {
201202
_PointerState state = _ensureStateForPointer(datum, position);
202203
state.startNewPointer();
@@ -221,6 +222,7 @@ public static IEnumerable<PointerEvent> expand(IEnumerable<PointerData> data, fl
221222
);
222223
}
223224
break;
225+
#endif
224226
}
225227
}
226228
}

Runtime/gestures/events.cs

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
using System;
22
using Unity.UIWidgets.ui;
3+
#if UNITY_EDITOR
34
using Object = UnityEngine.Object;
5+
#endif
46

57
namespace Unity.UIWidgets.gestures {
68
public abstract class PointerEvent {
@@ -87,6 +89,8 @@ public PointerScrollEvent(
8789
delta: delta) {
8890
}
8991
}
92+
93+
#if UNITY_EDITOR
9094
public class PointerDragFromEditorEnterEvent : PointerEvent {
9195
public PointerDragFromEditorEnterEvent(
9296
TimeSpan timeStamp,
@@ -194,22 +198,7 @@ public static PointerDragFromEditorReleaseEvent fromDragFromEditorEvent(PointerE
194198
);
195199
}
196200
}
197-
198-
public class PointerDragFromEditorFailedEvent : PointerEvent {
199-
public PointerDragFromEditorFailedEvent(
200-
TimeSpan timeStamp,
201-
int pointer = 0,
202-
PointerDeviceKind kind = PointerDeviceKind.mouse,
203-
int device = 0,
204-
Offset position = null
205-
) : base(
206-
timeStamp,
207-
pointer: pointer,
208-
kind: kind,
209-
device: device,
210-
position: position
211-
) { }
212-
}
201+
#endif
213202

214203
public class PointerHoverEvent : PointerEvent {
215204
public PointerHoverEvent(

Runtime/gestures/mouse_tracking.cs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,24 @@ public class MouseTrackerAnnotation {
2727
public MouseTrackerAnnotation(
2828
PointerEnterEventListener onEnter = null,
2929
PointerHoverEventListener onHover = null,
30-
PointerExitEventListener onExit = null,
31-
PointerDragFromEditorEnterEventListener onDragFromEditorEnter = null,
32-
PointerDragFromEditorHoverEventListener onDragFromEditorHover = null,
33-
PointerDragFromEditorExitEventListener onDragFromEditorExit = null,
34-
PointerDragFromEditorReleaseEventListener onDragFromEditorRelease = null
30+
PointerExitEventListener onExit = null
31+
#if UNITY_EDITOR
32+
, PointerDragFromEditorEnterEventListener onDragFromEditorEnter = null
33+
, PointerDragFromEditorHoverEventListener onDragFromEditorHover = null
34+
, PointerDragFromEditorExitEventListener onDragFromEditorExit = null
35+
, PointerDragFromEditorReleaseEventListener onDragFromEditorRelease = null
36+
#endif
3537
) {
3638
this.onEnter = onEnter;
3739
this.onHover = onHover;
3840
this.onExit = onExit;
3941

42+
#if UNITY_EDITOR
4043
this.onDragFromEditorEnter = onDragFromEditorEnter;
4144
this.onDragFromEditorHover = onDragFromEditorHover;
4245
this.onDragFromEditorExit = onDragFromEditorExit;
4346
this.onDragFromEditorRelease = onDragFromEditorRelease;
47+
#endif
4448
}
4549

4650
public readonly PointerEnterEventListener onEnter;
@@ -49,10 +53,12 @@ public MouseTrackerAnnotation(
4953

5054
public readonly PointerExitEventListener onExit;
5155

56+
#if UNITY_EDITOR
5257
public readonly PointerDragFromEditorEnterEventListener onDragFromEditorEnter;
5358
public readonly PointerDragFromEditorHoverEventListener onDragFromEditorHover;
5459
public readonly PointerDragFromEditorExitEventListener onDragFromEditorExit;
5560
public readonly PointerDragFromEditorReleaseEventListener onDragFromEditorRelease;
61+
#endif
5662

5763
public override string ToString() {
5864
return
@@ -189,6 +195,7 @@ void exitAnnotation(_TrackedAnnotation trackedAnnotation, int deviceId) {
189195
trackedAnnotation.annotation.onExit(
190196
PointerExitEvent.fromHoverEvent(this._lastMouseEvent[deviceId]));
191197
}
198+
192199
trackedAnnotation.activeDevices.Remove(deviceId);
193200
}
194201
}

Runtime/rendering/proxy_box.cs

Lines changed: 56 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1939,13 +1939,15 @@ public RenderPointerListener(
19391939
PointerCancelEventListener onPointerCancel = null,
19401940
PointerScrollEventListener onPointerScroll = null,
19411941
HitTestBehavior behavior = HitTestBehavior.deferToChild,
1942-
RenderBox child = null,
1943-
1942+
RenderBox child = null
1943+
1944+
#if UNITY_EDITOR
19441945
// Drag & Drop
1945-
PointerDragFromEditorEnterEventListener onPointerDragFromEditorEnter = null,
1946-
PointerDragFromEditorHoverEventListener onPointerDragFromEditorHover = null,
1947-
PointerDragFromEditorExitEventListener onPointerDragFromEditorExit = null,
1948-
PointerDragFromEditorReleaseEventListener onPointerDragFromEditorRelease = null
1946+
,PointerDragFromEditorEnterEventListener onPointerDragFromEditorEnter = null
1947+
,PointerDragFromEditorHoverEventListener onPointerDragFromEditorHover = null
1948+
,PointerDragFromEditorExitEventListener onPointerDragFromEditorExit = null
1949+
,PointerDragFromEditorReleaseEventListener onPointerDragFromEditorRelease = null
1950+
#endif
19491951
) : base(behavior: behavior, child: child) {
19501952
this.onPointerDown = onPointerDown;
19511953
this.onPointerMove = onPointerMove;
@@ -1956,36 +1958,40 @@ public RenderPointerListener(
19561958
this._onPointerEnter = onPointerEnter;
19571959
this._onPointerHover = onPointerHover;
19581960
this._onPointerExit = onPointerExit;
1959-
1961+
1962+
#if UNITY_EDITOR
19601963
// Drag & Drop
19611964
this._onPointerDragFromEditorEnter = onPointerDragFromEditorEnter;
19621965
this._onPointerDragFromEditorHover = onPointerDragFromEditorHover;
19631966
this._onPointerDragFromEditorExit = onPointerDragFromEditorExit;
19641967
this._onPointerDragFromEditorRelease = onPointerDragFromEditorRelease;
1968+
#endif
19651969

19661970
if (this._onPointerEnter != null ||
19671971
this._onPointerHover != null ||
1968-
this._onPointerExit != null ||
1969-
this._onPointerDragFromEditorEnter != null ||
1970-
this._onPointerDragFromEditorHover != null ||
1971-
this._onPointerDragFromEditorExit != null ||
1972-
this._onPointerDragFromEditorRelease != null) {
1972+
this._onPointerExit != null
1973+
#if UNITY_EDITOR
1974+
|| this._onPointerDragFromEditorEnter != null
1975+
|| this._onPointerDragFromEditorHover != null
1976+
|| this._onPointerDragFromEditorExit != null
1977+
|| this._onPointerDragFromEditorRelease != null
1978+
#endif
1979+
) {
19731980
this._hoverAnnotation = new MouseTrackerAnnotation(
19741981
onEnter: this._onPointerEnter,
19751982
onHover: this._onPointerHover,
1976-
onExit: this._onPointerExit,
1977-
onDragFromEditorEnter: this._onPointerDragFromEditorEnter,
1978-
onDragFromEditorHover: this._onPointerDragFromEditorHover,
1979-
onDragFromEditorExit: this._onPointerDragFromEditorExit,
1980-
onDragFromEditorRelease: this._onPointerDragFromEditorRelease
1983+
onExit: this._onPointerExit
1984+
#if UNITY_EDITOR
1985+
,onDragFromEditorEnter: this._onPointerDragFromEditorEnter
1986+
,onDragFromEditorHover: this._onPointerDragFromEditorHover
1987+
,onDragFromEditorExit: this._onPointerDragFromEditorExit
1988+
,onDragFromEditorRelease: this._onPointerDragFromEditorRelease
1989+
#endif
19811990
);
19821991
}
19831992
}
1984-
1985-
public PointerDownEventListener onPointerDown;
1986-
1987-
public PointerMoveEventListener onPointerMove;
1988-
1993+
1994+
#if UNITY_EDITOR
19891995
PointerDragFromEditorEnterEventListener _onPointerDragFromEditorEnter;
19901996

19911997
public PointerDragFromEditorEnterEventListener onPointerDragFromEditorEnter {
@@ -2033,6 +2039,7 @@ public PointerDragFromEditorReleaseEventListener onPointerDragFromEditorRelease
20332039
}
20342040
}
20352041
}
2042+
#endif
20362043

20372044
public PointerEnterEventListener onPointerEnter {
20382045
get { return this._onPointerEnter; }
@@ -2070,6 +2077,10 @@ public PointerExitEventListener onPointerExit {
20702077

20712078
PointerExitEventListener _onPointerExit;
20722079

2080+
public PointerDownEventListener onPointerDown;
2081+
2082+
public PointerMoveEventListener onPointerMove;
2083+
20732084
public PointerUpEventListener onPointerUp;
20742085

20752086
public PointerCancelEventListener onPointerCancel;
@@ -2081,32 +2092,39 @@ public PointerExitEventListener onPointerExit {
20812092
void _updateAnnotations() {
20822093
D.assert(this._onPointerEnter != this._hoverAnnotation.onEnter ||
20832094
this._onPointerHover != this._hoverAnnotation.onHover ||
2084-
this._onPointerExit != this._hoverAnnotation.onExit ||
2085-
this._onPointerDragFromEditorEnter != this._hoverAnnotation.onDragFromEditorEnter ||
2086-
this._onPointerDragFromEditorHover != this._hoverAnnotation.onDragFromEditorHover ||
2087-
this._onPointerDragFromEditorExit != this._hoverAnnotation.onDragFromEditorExit ||
2088-
this._onPointerDragFromEditorRelease != this._hoverAnnotation.onDragFromEditorRelease,
2089-
() => "Shouldn't call _updateAnnotations if nothing has changed.");
2095+
this._onPointerExit != this._hoverAnnotation.onExit
2096+
#if UNITY_EDITOR
2097+
|| this._onPointerDragFromEditorEnter != this._hoverAnnotation.onDragFromEditorEnter
2098+
|| this._onPointerDragFromEditorHover != this._hoverAnnotation.onDragFromEditorHover
2099+
|| this._onPointerDragFromEditorExit != this._hoverAnnotation.onDragFromEditorExit
2100+
|| this._onPointerDragFromEditorRelease != this._hoverAnnotation.onDragFromEditorRelease
2101+
#endif
2102+
, () => "Shouldn't call _updateAnnotations if nothing has changed.");
20902103

20912104
if (this._hoverAnnotation != null && this.attached) {
20922105
RendererBinding.instance.mouseTracker.detachAnnotation(this._hoverAnnotation);
20932106
}
20942107

20952108
if (this._onPointerEnter != null ||
20962109
this._onPointerHover != null ||
2097-
this._onPointerExit != null ||
2098-
this._onPointerDragFromEditorEnter != null ||
2099-
this._onPointerDragFromEditorHover != null ||
2100-
this._onPointerDragFromEditorExit != null ||
2101-
this._onPointerDragFromEditorRelease != null) {
2110+
this._onPointerExit != null
2111+
#if UNITY_EDITOR
2112+
|| this._onPointerDragFromEditorEnter != null
2113+
|| this._onPointerDragFromEditorHover != null
2114+
|| this._onPointerDragFromEditorExit != null
2115+
|| this._onPointerDragFromEditorRelease != null
2116+
#endif
2117+
) {
21022118
this._hoverAnnotation = new MouseTrackerAnnotation(
21032119
onEnter: this._onPointerEnter,
21042120
onHover: this._onPointerHover,
2105-
onExit: this._onPointerExit,
2106-
onDragFromEditorEnter: this._onPointerDragFromEditorEnter,
2107-
onDragFromEditorHover: this._onPointerDragFromEditorHover,
2108-
onDragFromEditorExit: this._onPointerDragFromEditorExit,
2109-
onDragFromEditorRelease: this._onPointerDragFromEditorRelease
2121+
onExit: this._onPointerExit
2122+
#if UNITY_EDITOR
2123+
, onDragFromEditorEnter: this._onPointerDragFromEditorEnter
2124+
, onDragFromEditorHover: this._onPointerDragFromEditorHover
2125+
, onDragFromEditorExit: this._onPointerDragFromEditorExit
2126+
, onDragFromEditorRelease: this._onPointerDragFromEditorRelease
2127+
#endif
21102128
);
21112129

21122130
if (this.attached) {

Runtime/ui/pointer.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,10 @@ public enum PointerChange {
1111
move,
1212
up,
1313
scroll,
14+
#if UNITY_EDITOR
1415
dragFromEditorMove, // Drag & Drop
1516
dragFromEditorRelease
17+
#endif
1618
}
1719

1820
public enum PointerDeviceKind {

0 commit comments

Comments
 (0)