public static EventBase MakeEvent(TouchPhase phase, Vector2 position, EventModifiers modifiers = EventModifiers.None, MouseButton button = MouseButton.LeftMouse) { var touch = MakeDefaultTouch(); touch.position = position; touch.phase = phase; if (button != MouseButton.LeftMouse) { PointerDeviceState.PressButton(touch.fingerId, (int)button); } switch (touch.phase) { case TouchPhase.Began: return(PointerDownEvent.GetPooled(touch, modifiers)); case TouchPhase.Moved: return(PointerMoveEvent.GetPooled(touch, modifiers)); case TouchPhase.Ended: return(PointerUpEvent.GetPooled(touch, modifiers)); default: throw new ArgumentOutOfRangeException(); } }
/// <summary> /// Finish the drag and compute whether the item should be moved to a new slot /// </summary> private void OnPointerUp(PointerUpEvent evt) { if (!m_IsDragging) { return; } //Check to see if they are dropping the ghost icon over any inventory slots. IEnumerable <InventorySlot> slots = InventoryItems.Where(x => x.worldBound.Overlaps(m_GhostIcon.worldBound)); //Found at least one if (slots.Count() != 0) { InventorySlot closestSlot = slots.OrderBy(x => Vector2.Distance(x.worldBound.position, m_GhostIcon.worldBound.position)).First(); //Set the new inventory slot with the data closestSlot.HoldItem(GameController.GetItemByGuid(m_OriginalSlot.ItemGuid)); //Clear the original slot m_OriginalSlot.DropItem(); } //Didn't find any (dragged off the window) else { m_OriginalSlot.Icon.image = GameController.GetItemByGuid(m_OriginalSlot.ItemGuid).Icon.texture; } //Clear dragging related visuals and data m_IsDragging = false; m_OriginalSlot = null; m_GhostIcon.style.visibility = Visibility.Hidden; }
void OnPointerUpEvent(PointerUpEvent e) { if (m_GotMouseDown && e.isPrimary && e.button == 0) { m_GotMouseDown = false; } }
static void SetBestTargetForEvent(EventBase evt, IPanel panel) { UpdateElementUnderPointer(evt, panel, out VisualElement elementUnderPointer); if (evt.target == null && elementUnderPointer != null) { evt.propagateToIMGUI = false; evt.target = elementUnderPointer; } else if (evt.target == null && elementUnderPointer == null) { // Event occurred outside the window. // Fix for case 1306631 - a MouseUp event received outside of the GameView // is re-directed to the DockArea IMGUIContainer. Otherwise send the event // to the visual tree root and don't modify evt.propagateToIMGUI, allowing // MouseLeaveWindow events may be received via trickle down traversal. if (panel?.contextType == ContextType.Editor && evt.eventTypeId == PointerUpEvent.TypeId()) { evt.target = (panel as Panel)?.rootIMGUIContainer; } else { evt.target = panel?.visualTree; } } else if (evt.target != null) { evt.propagateToIMGUI = false; } }
private EventBase MakeTouchEvent(Touch touch, EventModifiers modifiers) { // Flip Y Coordinates. touch.position = new Vector2(touch.position.x, Screen.height - touch.position.y); touch.rawPosition = new Vector2(touch.rawPosition.x, Screen.height - touch.rawPosition.y); touch.deltaPosition = new Vector2(touch.deltaPosition.x, Screen.height - touch.deltaPosition.y); switch (touch.phase) { case TouchPhase.Began: return(PointerDownEvent.GetPooled(touch, modifiers)); case TouchPhase.Moved: return(PointerMoveEvent.GetPooled(touch, modifiers)); case TouchPhase.Stationary: return(PointerStationaryEvent.GetPooled(touch, modifiers)); case TouchPhase.Ended: return(PointerUpEvent.GetPooled(touch, modifiers)); case TouchPhase.Canceled: return(PointerCancelEvent.GetPooled(touch, modifiers)); default: return(null); } }
protected override void handleTapUp(PointerDownEvent down = null, PointerUpEvent up = null) { if (onAnyTapUp != null) { onAnyTapUp(); } }
private void OnFingerUp(PointerUpEvent evt) { if (evt.pointerType == PointerType.touch && evt.currentTarget == evt.target) { var ve = evt.target as VisualElement; OnUp(ve); } }
private void OnPointerUpEvent(PointerUpEvent evt) { if (_dragState == DragState.Ready && evt.button == 0) { _dragState = DragState.AtRest; } this.ReleaseMouse(); evt.StopImmediatePropagation(); }
void OnPointerUp(PointerUpEvent evt) { if (evt.target.HasPointerCapture((evt.pointerId))) { var ve = (VisualElement)evt.target; evt.target.ReleasePointer(evt.pointerId); ReleaseActiveElement(); } }
private void UpdateValueOnPointerUp(PointerUpEvent evt) { if (evt.pointerId == PointerId.mousePointerId) { return; } ProcessUpEvent(evt, evt.pointerId); }
void OnItemSelected(PointerUpEvent evt) { var e = (VisualElement)evt.target; var ctx = (SelectionContext)e.GetProperty(k_SelectionContextKey); // We must go through the context here, because the elements are pooled and the closure would bind on // the previous time the element was used. ctx.content.SetSelection(ctx.index); ctx.content.onSelectionChanged?.Invoke(ctx.item.value); ctx.content.editorWindow.Close(); }
void OnPointerUp(PointerUpEvent evt) { if (m_ActivatingButton != evt.button || !CanStopManipulation(evt)) { return; } m_Panning = false; target.ReleaseMouse(); evt.StopPropagation(); }
protected void OnPointerUp(PointerUpEvent e) { if (!m_Active || !target.HasPointerCapture(e.pointerId) || !CanStopManipulation(e)) { return; } m_Active = false; target.ReleasePointer(e.pointerId); e.StopPropagation(); }
private void OnPointerUp(PointerUpEvent evt) { if (evt.target.HasPointerCapture(evt.pointerId)) { Debug.Assert(evt.currentTarget == evt.target); VisualElement ve = (VisualElement)evt.target; ve.RemoveFromClassList("active"); evt.target.ReleasePointer(evt.pointerId); } }
void OnPointerUp(PointerUpEvent e) { if (!e.isPrimary || e.button != 0) { return; } this.ReleasePointer(e.pointerId); m_DraggingControlPoint = false; m_DraggingTightness = false; e.StopPropagation(); }
private void OnPointerUp(PointerUpEvent evt) { mainArea.ReleasePointer(evt.pointerId); tooltip.text = "PointerUp!"; UpdateTooltipPosition(evt.localPosition); mainArea.RemoveFromClassList("main-area--active"); mainArea.schedule.Execute(() => { if (tooltip.text == "PointerUp!") { tooltip.text = string.Empty; } }).StartingIn(1000); }
void OnPointerUp(PointerUpEvent e) { if (!m_Active || !target.HasPointerCapture(e.pointerId) || !CanStopManipulation(e)) { return; } var ve = (e.currentTarget as VisualElement); var pos = ve.ChangeCoordinatesTo(m_Header, e.localPosition); EndDragResize(pos.x, false); m_Active = false; target.ReleasePointer(e.pointerId); e.StopPropagation(); }
public override void ExecuteDefaultActionAtTarget(EventBase evt) { base.ExecuteDefaultActionAtTarget(evt); if (keyboardOnScreen != null) { return; } var edition = textElement.edition; if (!edition.isReadOnly && evt.eventTypeId == PointerDownEvent.TypeId()) { // CaptureMouse is preventing WebGL from processing pointerDown event in // TextInputFieldBase during the Javascript event handler, preventing the // keyboard from being displayed. Disable the capture behavior for WebGL. textElement.CaptureMouse(); m_LastPointerDownTarget = evt.target as VisualElement; } else if (!edition.isReadOnly && evt.eventTypeId == PointerUpEvent.TypeId()) { textElement.ReleaseMouse(); if (m_LastPointerDownTarget == null || !m_LastPointerDownTarget.worldBound.Contains(((PointerUpEvent)evt).position)) { return; } m_LastPointerDownTarget = null; edition.UpdateText(editingUtilities.text); OpenTouchScreenKeyboard(); if (keyboardOnScreen != null) { PollTouchScreenKeyboard(); } // Scroll offset might need to be updated edition.UpdateScrollOffset?.Invoke(); evt.StopPropagation(); } }
void OnClickEvent(EventBase evt) { if (evt.eventTypeId == MouseUpEvent.TypeId()) { var ce = (IMouseEvent)evt; if (ce.button == (int)MouseButton.LeftMouse) { ToggleValue(); } } else if (evt.eventTypeId == PointerUpEvent.TypeId() || evt.eventTypeId == ClickEvent.TypeId()) { var ce = (IPointerEvent)evt; if (ce.button == (int)MouseButton.LeftMouse) { ToggleValue(); } } }
bool ProcessClick(EventBase evt) { if (evt.eventTypeId == MouseUpEvent.TypeId()) { var ce = (IMouseEvent)evt; if (ce.button == (int)MouseButton.LeftMouse) { return(true); } } else if (evt.eventTypeId == PointerUpEvent.TypeId() || evt.eventTypeId == ClickEvent.TypeId()) { var ce = (IPointerEvent)evt; if (ce.button == (int)MouseButton.LeftMouse) { return(true); } } return(false); }
public override void ExecuteDefaultActionAtTarget(EventBase evt) { base.ExecuteDefaultActionAtTarget(evt); if (!textInputField.isReadOnly && evt.eventTypeId == PointerDownEvent.TypeId() && editorEngine.keyboardOnScreen == null) { m_LastPointerDownTarget = evt.target as VisualElement; } else if (!textInputField.isReadOnly && evt.eventTypeId == PointerUpEvent.TypeId() && editorEngine.keyboardOnScreen == null) { var pointerUpEvent = evt as PointerUpEvent; if (m_LastPointerDownTarget == null || !m_LastPointerDownTarget.worldBound.Contains(pointerUpEvent.position)) { return; } textInputField.SyncTextEngine(); textInputField.UpdateText(editorEngine.text); editorEngine.keyboardOnScreen = TouchScreenKeyboard.Open(textInputField.text, TouchScreenKeyboardType.Default, true, // autocorrection editorEngine.multiline, textInputField.isPasswordField); #if UNITY_IOS || UNITY_ANDROID s_KeyboardOnScreen = editorEngine.keyboardOnScreen; #endif if (editorEngine.keyboardOnScreen != null) { PollTouchScreenKeyboard(); } // Scroll offset might need to be updated editorEngine.UpdateScrollOffset(); evt.StopPropagation(); } }
private void Update() { // Update the delta always, this helps working around initialization issues :D UpdateDelta(); if (!isActive) { return; } if (!hadInputDownAfterGameStart) { delta = 0f; } // This also works on touch devices if (Input.GetMouseButtonDown(0)) { hadInputDownAfterGameStart = true; PointerDownEvent?.Invoke(); } // This also works on touch devices if (Input.GetMouseButtonUp(0) && hadInputDownAfterGameStart) { PointerUpEvent?.Invoke(); } // This also works on touch devices if (!Input.GetMouseButton(0)) { return; } HorizontalDragEvent?.Invoke(delta); }
internal void CommitElementUnderPointers(EventDispatcher dispatcher) { for (var i = 0; i < m_TopElementUnderPointer.Length; i++) { if (m_TopElementUnderPointer[i] == m_PendingTopElementUnderPointer[i]) { continue; } if (m_TriggerPointerEvent[i] == null && m_TriggerMouseEvent[i] == null) { using (new EventDispatcherGate(dispatcher)) { Vector2 position = PointerDeviceState.GetPointerPosition(i); PointerEventsHelper.SendOverOut(m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], null, position, i); PointerEventsHelper.SendEnterLeave <PointerLeaveEvent, PointerEnterEvent>( m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], null, position, i); if (i == PointerId.mousePointerId) { MouseEventsHelper.SendMouseOverMouseOut(m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], null, position); MouseEventsHelper.SendEnterLeave <MouseLeaveEvent, MouseEnterEvent>( m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], null, position); } } } if (m_TriggerPointerEvent[i] != null) { if ((m_TriggerPointerEvent[i] as EventBase)?.eventTypeId == PointerMoveEvent.TypeId() || (m_TriggerPointerEvent[i] as EventBase)?.eventTypeId == PointerDownEvent.TypeId() || (m_TriggerPointerEvent[i] as EventBase)?.eventTypeId == PointerUpEvent.TypeId() || (m_TriggerPointerEvent[i] as EventBase)?.eventTypeId == PointerCancelEvent.TypeId()) { using (new EventDispatcherGate(dispatcher)) { PointerEventsHelper.SendOverOut(m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], m_TriggerPointerEvent[i], m_TriggerPointerEvent[i].position, i); PointerEventsHelper.SendEnterLeave <PointerLeaveEvent, PointerEnterEvent>( m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], m_TriggerPointerEvent[i], m_TriggerPointerEvent[i].position, i); } } m_TriggerPointerEvent[i] = null; } if (m_TriggerMouseEvent[i] != null) { if ((m_TriggerMouseEvent[i] as EventBase)?.eventTypeId == MouseMoveEvent.TypeId() || (m_TriggerMouseEvent[i] as EventBase)?.eventTypeId == MouseDownEvent.TypeId() || (m_TriggerMouseEvent[i] as EventBase)?.eventTypeId == MouseUpEvent.TypeId() || (m_TriggerMouseEvent[i] as EventBase)?.eventTypeId == WheelEvent.TypeId()) { using (new EventDispatcherGate(dispatcher)) { MouseEventsHelper.SendMouseOverMouseOut(m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], m_TriggerMouseEvent[i], m_TriggerMouseEvent[i].mousePosition); MouseEventsHelper.SendEnterLeave <MouseLeaveEvent, MouseEnterEvent>( m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], m_TriggerMouseEvent[i], m_TriggerMouseEvent[i].mousePosition); } } else if ((m_TriggerMouseEvent[i] as EventBase)?.eventTypeId == MouseEnterWindowEvent.TypeId() || (m_TriggerMouseEvent[i] as EventBase)?.eventTypeId == MouseLeaveWindowEvent.TypeId() ) { using (new EventDispatcherGate(dispatcher)) { PointerEventsHelper.SendOverOut(m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], null, m_TriggerMouseEvent[i].mousePosition, i); PointerEventsHelper.SendEnterLeave <PointerLeaveEvent, PointerEnterEvent>( m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], null, m_TriggerMouseEvent[i].mousePosition, i); if (i == PointerId.mousePointerId) { MouseEventsHelper.SendMouseOverMouseOut(m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], m_TriggerMouseEvent[i], m_TriggerMouseEvent[i].mousePosition); MouseEventsHelper.SendEnterLeave <MouseLeaveEvent, MouseEnterEvent>( m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], m_TriggerMouseEvent[i], m_TriggerMouseEvent[i].mousePosition); } } } else if ((m_TriggerMouseEvent[i] as EventBase)?.eventTypeId == DragUpdatedEvent.TypeId() || (m_TriggerMouseEvent[i] as EventBase)?.eventTypeId == DragExitedEvent.TypeId()) { using (new EventDispatcherGate(dispatcher)) { PointerEventsHelper.SendOverOut(m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], null, m_TriggerMouseEvent[i].mousePosition, i); PointerEventsHelper.SendEnterLeave <PointerLeaveEvent, PointerEnterEvent>( m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], null, m_TriggerMouseEvent[i].mousePosition, i); MouseEventsHelper.SendMouseOverMouseOut(m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], m_TriggerMouseEvent[i], m_TriggerMouseEvent[i].mousePosition); MouseEventsHelper.SendEnterLeave <MouseLeaveEvent, MouseEnterEvent>( m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], m_TriggerMouseEvent[i], m_TriggerMouseEvent[i].mousePosition); MouseEventsHelper.SendEnterLeave <DragLeaveEvent, DragEnterEvent>( m_TopElementUnderPointer[i], m_PendingTopElementUnderPointer[i], m_TriggerMouseEvent[i], m_TriggerMouseEvent[i].mousePosition); } } m_TriggerMouseEvent[i] = null; } m_TopElementUnderPointer[i] = m_PendingTopElementUnderPointer[i]; } }
internal static MouseUpEvent GetPooled(PointerUpEvent pointerEvent) { return(MakeFromPointerEvent(pointerEvent)); }
private void OnPointerUpEvent(PointerUpEvent evt) { m_CanStartDrag = false; }
void UpdateEventbaseInfo(EventDebuggerEventRecord eventBase, IEventHandler focused, IEventHandler capture) { ClearEventbaseInfo(); if (eventBase == null) { return; } m_EventbaseInfo.text += "Focused element: " + EventDebugger.GetObjectDisplayName(focused) + "\n"; m_EventbaseInfo.text += "Capture element: " + EventDebugger.GetObjectDisplayName(capture) + "\n"; if (eventBase.eventTypeId == MouseMoveEvent.TypeId() || eventBase.eventTypeId == MouseOverEvent.TypeId() || eventBase.eventTypeId == MouseOutEvent.TypeId() || eventBase.eventTypeId == MouseDownEvent.TypeId() || eventBase.eventTypeId == MouseUpEvent.TypeId() || eventBase.eventTypeId == MouseEnterEvent.TypeId() || eventBase.eventTypeId == MouseLeaveEvent.TypeId() || eventBase.eventTypeId == DragEnterEvent.TypeId() || eventBase.eventTypeId == DragLeaveEvent.TypeId() || eventBase.eventTypeId == DragUpdatedEvent.TypeId() || eventBase.eventTypeId == DragPerformEvent.TypeId() || eventBase.eventTypeId == DragExitedEvent.TypeId() || eventBase.eventTypeId == ContextClickEvent.TypeId() || eventBase.eventTypeId == PointerMoveEvent.TypeId() || eventBase.eventTypeId == PointerOverEvent.TypeId() || eventBase.eventTypeId == PointerOutEvent.TypeId() || eventBase.eventTypeId == PointerDownEvent.TypeId() || eventBase.eventTypeId == PointerUpEvent.TypeId() || eventBase.eventTypeId == PointerCancelEvent.TypeId() || eventBase.eventTypeId == PointerStationaryEvent.TypeId() || eventBase.eventTypeId == PointerEnterEvent.TypeId() || eventBase.eventTypeId == PointerLeaveEvent.TypeId()) { m_EventbaseInfo.text += "Mouse position: " + eventBase.mousePosition + "\n"; m_EventbaseInfo.text += "Modifiers: " + eventBase.modifiers + "\n"; } if (eventBase.eventTypeId == KeyDownEvent.TypeId() || eventBase.eventTypeId == KeyUpEvent.TypeId()) { m_EventbaseInfo.text += "Modifiers: " + eventBase.modifiers + "\n"; } if (eventBase.eventTypeId == MouseDownEvent.TypeId() || eventBase.eventTypeId == MouseUpEvent.TypeId() || eventBase.eventTypeId == PointerDownEvent.TypeId() || eventBase.eventTypeId == PointerUpEvent.TypeId() || eventBase.eventTypeId == DragUpdatedEvent.TypeId() || eventBase.eventTypeId == DragPerformEvent.TypeId() || eventBase.eventTypeId == DragExitedEvent.TypeId()) { m_EventbaseInfo.text += "Button: " + (eventBase.button == 0 ? "Left" : eventBase.button == 1 ? "Middle" : "Right") + "\n"; m_EventbaseInfo.text += "Click count: " + eventBase.clickCount + "\n"; } if (eventBase.eventTypeId == MouseMoveEvent.TypeId() || eventBase.eventTypeId == MouseOverEvent.TypeId() || eventBase.eventTypeId == MouseOutEvent.TypeId() || eventBase.eventTypeId == MouseDownEvent.TypeId() || eventBase.eventTypeId == MouseUpEvent.TypeId() || eventBase.eventTypeId == MouseEnterEvent.TypeId() || eventBase.eventTypeId == MouseLeaveEvent.TypeId() || eventBase.eventTypeId == DragEnterEvent.TypeId() || eventBase.eventTypeId == DragLeaveEvent.TypeId() || eventBase.eventTypeId == DragUpdatedEvent.TypeId() || eventBase.eventTypeId == DragPerformEvent.TypeId() || eventBase.eventTypeId == DragExitedEvent.TypeId() || eventBase.eventTypeId == ContextClickEvent.TypeId() || eventBase.eventTypeId == WheelEvent.TypeId() || eventBase.eventTypeId == PointerMoveEvent.TypeId() || eventBase.eventTypeId == PointerOverEvent.TypeId() || eventBase.eventTypeId == PointerOutEvent.TypeId() || eventBase.eventTypeId == PointerDownEvent.TypeId() || eventBase.eventTypeId == PointerUpEvent.TypeId() || eventBase.eventTypeId == PointerCancelEvent.TypeId() || eventBase.eventTypeId == PointerStationaryEvent.TypeId() || eventBase.eventTypeId == PointerEnterEvent.TypeId() || eventBase.eventTypeId == PointerLeaveEvent.TypeId()) { m_EventbaseInfo.text += "Pressed buttons: " + eventBase.pressedButtons + "\n"; } if (eventBase.eventTypeId == WheelEvent.TypeId()) { m_EventbaseInfo.text += "Mouse delta: " + eventBase.delta + "\n"; } if (eventBase.eventTypeId == KeyDownEvent.TypeId() || eventBase.eventTypeId == KeyUpEvent.TypeId()) { if (char.IsControl(eventBase.character)) { m_EventbaseInfo.text += "Character: \\" + (byte)(eventBase.character) + "\n"; } else { m_EventbaseInfo.text += "Character: " + eventBase.character + "\n"; } m_EventbaseInfo.text += "Key code: " + eventBase.keyCode + "\n"; } if (eventBase.eventTypeId == ValidateCommandEvent.TypeId() || eventBase.eventTypeId == ExecuteCommandEvent.TypeId()) { m_EventbaseInfo.text += "Command: " + eventBase.commandName + "\n"; } }
void OnListViewPointerUp(PointerUpEvent evt) => SubmitCompletion(m_CompletionListView.selectedIndex);
internal void CommitElementUnderPointers(EventDispatcher dispatcher) { for (var i = 0; i < m_TopElementUnderPointer.Length; i++) { var triggerPointerEvent = m_TriggerPointerEvent[i]; var previous = m_TopElementUnderPointer[i]; var current = m_PendingTopElementUnderPointer[i]; if (current == previous) { if (triggerPointerEvent != null) { var pos3d = triggerPointerEvent.position; m_PickingPointerPositions[i] = new Vector2(pos3d.x, pos3d.y); } else if (m_TriggerMouseEvent[i] != null) { m_PickingPointerPositions[i] = m_TriggerMouseEvent[i].mousePosition; } continue; } m_TopElementUnderPointer[i] = current; if (triggerPointerEvent == null && m_TriggerMouseEvent[i] == null) { using (new EventDispatcherGate(dispatcher)) { Vector2 position = PointerDeviceState.GetPointerPosition(i); PointerEventsHelper.SendOverOut(previous, current, null, position, i); PointerEventsHelper.SendEnterLeave <PointerLeaveEvent, PointerEnterEvent>( previous, current, null, position, i); m_PickingPointerPositions[i] = position; if (i == PointerId.mousePointerId) { MouseEventsHelper.SendMouseOverMouseOut(previous, current, null, position); MouseEventsHelper.SendEnterLeave <MouseLeaveEvent, MouseEnterEvent>( previous, current, null, position); } } } if (triggerPointerEvent != null) { var pos3d = triggerPointerEvent.position; m_PickingPointerPositions[i] = new Vector2(pos3d.x, pos3d.y); var baseEvent = triggerPointerEvent as EventBase; if (baseEvent != null && ( baseEvent.eventTypeId == PointerMoveEvent.TypeId() || baseEvent.eventTypeId == PointerDownEvent.TypeId() || baseEvent.eventTypeId == PointerUpEvent.TypeId() || baseEvent.eventTypeId == PointerCancelEvent.TypeId())) { using (new EventDispatcherGate(dispatcher)) { PointerEventsHelper.SendOverOut(previous, current, triggerPointerEvent, pos3d, i); PointerEventsHelper.SendEnterLeave <PointerLeaveEvent, PointerEnterEvent>( previous, current, triggerPointerEvent, pos3d, i); } } } m_TriggerPointerEvent[i] = null; var triggerMouseEvent = m_TriggerMouseEvent[i]; if (triggerMouseEvent != null) { Vector2 mousePos = triggerMouseEvent.mousePosition; m_PickingPointerPositions[i] = mousePos; var baseEvent = triggerMouseEvent as EventBase; if (baseEvent != null) { if (baseEvent.eventTypeId == MouseMoveEvent.TypeId() || baseEvent.eventTypeId == MouseDownEvent.TypeId() || baseEvent.eventTypeId == MouseUpEvent.TypeId() || baseEvent.eventTypeId == WheelEvent.TypeId()) { using (new EventDispatcherGate(dispatcher)) { MouseEventsHelper.SendMouseOverMouseOut(previous, current, triggerMouseEvent, mousePos); MouseEventsHelper.SendEnterLeave <MouseLeaveEvent, MouseEnterEvent>( previous, current, triggerMouseEvent, mousePos); } } else if (baseEvent.eventTypeId == MouseEnterWindowEvent.TypeId() || baseEvent.eventTypeId == MouseLeaveWindowEvent.TypeId() ) { using (new EventDispatcherGate(dispatcher)) { PointerEventsHelper.SendOverOut(previous, current, null, mousePos, i); PointerEventsHelper.SendEnterLeave <PointerLeaveEvent, PointerEnterEvent>( previous, current, null, mousePos, i); if (i == PointerId.mousePointerId) { MouseEventsHelper.SendMouseOverMouseOut(previous, current, triggerMouseEvent, mousePos); MouseEventsHelper.SendEnterLeave <MouseLeaveEvent, MouseEnterEvent>( previous, current, triggerMouseEvent, mousePos); } } } else if (baseEvent.eventTypeId == DragUpdatedEvent.TypeId() || baseEvent.eventTypeId == DragExitedEvent.TypeId()) { using (new EventDispatcherGate(dispatcher)) { PointerEventsHelper.SendOverOut(previous, current, null, mousePos, i); PointerEventsHelper.SendEnterLeave <PointerLeaveEvent, PointerEnterEvent>( previous, current, null, mousePos, i); MouseEventsHelper.SendMouseOverMouseOut(previous, current, triggerMouseEvent, mousePos); MouseEventsHelper.SendEnterLeave <MouseLeaveEvent, MouseEnterEvent>( previous, current, triggerMouseEvent, mousePos); MouseEventsHelper.SendEnterLeave <DragLeaveEvent, DragEnterEvent>( previous, current, triggerMouseEvent, mousePos); } } } m_TriggerMouseEvent[i] = null; } } }
private void OnPointerUpEvent(PointerUpEvent evt) { OnPointerUp(); }