void OnWheel(WheelEvent evt) { var graphView = target as GraphView; if (graphView == null) return; IPanel panel = (evt.target as VisualElement)?.panel; if (panel.GetCapturingElement(PointerId.mousePointerId) != null) return; Vector3 position = graphView.viewTransform.position; Vector3 scale = graphView.viewTransform.scale; // TODO: augment the data to have the position as well, so we don't have to read in data from the target. // 0-1 ranged center relative to size Vector2 zoomCenter = target.ChangeCoordinatesTo(graphView.contentViewContainer, evt.localMousePosition); float x = zoomCenter.x + graphView.contentViewContainer.layout.x; float y = zoomCenter.y + graphView.contentViewContainer.layout.y; position += Vector3.Scale(new Vector3(x, y, 0), scale); // Apply the new zoom. float zoom = CalculateNewZoom(scale.y, -evt.delta.y, scaleStep, referenceScale, minScale, maxScale); scale.x = zoom; scale.y = zoom; scale.z = 1; position -= Vector3.Scale(new Vector3(x, y, 0), scale); position.x = GraphViewStaticBridge.RoundToPixelGrid(position.x); position.y = GraphViewStaticBridge.RoundToPixelGrid(position.y); graphView.UpdateViewTransform(position, scale); evt.StopPropagation(); }
void OnScrollWheel(WheelEvent evt) { /* * // Handled by ScrollView * if (!isHorizontal && m_ScrollView.contentContainer.layout.height - layout.height > 0) * { * if (evt.delta.y < 0) * m_ScrollView.verticalScroller.ScrollPageUp(); * else if (evt.delta.y > 0) * m_ScrollView.verticalScroller.ScrollPageDown(); * } */ if (isHorizontal && m_ScrollView.contentContainer.layout.width - layout.width > 0) { // TODO: Does not provide delta.x for sidescrolling mouse wheel. Use delta.y for now. if (evt.delta.y < 0) { m_ScrollView.horizontalScroller.ScrollPageUp(); } else if (evt.delta.y > 0) { m_ScrollView.horizontalScroller.ScrollPageDown(); } } evt.StopPropagation(); }
protected void OnMouseWheel(WheelEvent e) { if (Image == null) { Image = target.Q <Image>(); } Vector2 mousePosition = target.ChangeCoordinatesTo(Image, e.localMousePosition); float wheelDelta = -Mathf.Ceil(Mathf.Abs(e.mouseDelta.y)) * Mathf.Sign(e.mouseDelta.y); float aspect = Image.image.width / Image.image.height; Vector2 oldSize = Image.layout.size; float delta = wheelDelta > 0 ? 1.25f : 0.8f; // Vector2 newSize = new Vector2(wheelDelta + Image.layout.width, wheelDelta * aspect + Image.layout.height); Vector2 newSize = oldSize * delta; if (newSize.x < Image.image.width || newSize.y < Image.image.height) { return; } target.Query <Image>().ForEach((image) => { image.style.width = newSize.x; image.style.height = newSize.y; }); Vector2 deltaSize = newSize - oldSize; deltaSize *= mousePosition / newSize; Image.style.left = Image.layout.xMin - deltaSize.x; Image.style.top = Image.layout.yMin - deltaSize.y; }
private void OnScrollWheel(WheelEvent evt) { if (m_mouseDrag) { evt.StopImmediatePropagation(); return; } m_serializedNoise.ApplyModifiedProperties(); m_serializedNoise.Update(); { Vector3 s = m_scale.vector3Value; Vector2 abs = new Vector2(Mathf.Abs(s.x), Mathf.Abs(s.z)); abs += Vector2.one * .001f; float scroll = evt.delta.y; s.x += abs.x * scroll * .05f; s.z += abs.y * scroll * .05f; m_scale.vector3Value = s; } m_serializedNoise.ApplyModifiedProperties(); m_serializedNoise.Update(); evt.StopPropagation(); }
private void OnWheel(WheelEvent evt) { GraphView graphView = base.target as GraphView; if (graphView != null) { if (!MouseCaptureController.IsMouseCaptureTaken()) { Vector3 vector = graphView.viewTransform.position; Vector3 scale = graphView.viewTransform.scale; Vector2 vector2 = base.target.ChangeCoordinatesTo(graphView.contentViewContainer, evt.localMousePosition); float x = vector2.x + graphView.contentViewContainer.layout.x; float y = vector2.y + graphView.contentViewContainer.layout.y; vector += Vector3.Scale(new Vector3(x, y, 0f), scale); float num = ContentZoomer.CalculateNewZoom(scale.y, -evt.delta.y, this.scaleStep, this.referenceScale, this.minScale, this.maxScale); scale.x = num; scale.y = num; scale.z = 1f; vector -= Vector3.Scale(new Vector3(x, y, 0f), scale); if (graphView.elementPanel != null && this.keepPixelCacheOnZoom) { graphView.elementPanel.keepPixelCacheOnWorldBoundChange = true; if (this.m_OnTimerTicker == null) { this.m_OnTimerTicker = graphView.schedule.Execute(new Action <TimerState>(this.OnTimer)); } this.m_OnTimerTicker.ExecuteLater(500L); this.delayRepaintScheduled = true; } graphView.UpdateViewTransform(vector, scale); evt.StopPropagation(); } } }
void OnScroll(WheelEvent e) { float zoomScale = 1f - e.delta.y * k_ZoomStep; Zoom(m_ZoomedUI.WorldToLocal(e.mousePosition), zoomScale); e.StopPropagation(); }
public void OnMouseWheel(ElementEvent e) { WheelEvent ev = (WheelEvent)(object)e; //firefox // double delta = event.detail ? event.detail * (-120) : event.wheelDelta; double delta = ev.WheelDelta; }
private void OnWheel(WheelEvent evt) { if (wheel != null) { wheel(evt); } }
/// <summary> /// On scroll event. /// </summary> /// <param name="evt">Event data.</param> void OnScroll(WheelEvent evt) { // Close the window if the user scrolls outside the dialogue. if (!worldBound.Contains(evt.mousePosition)) { Close(); } }
private void OnScroll(WheelEvent e) { Vector2 zoomCenter = VisualElementExtensions.ChangeCoordinatesTo(base.target, this.targetElement, e.localMousePosition); float zoomScale = 1f - e.delta.y * zoomStep; this.Zoom(zoomCenter, zoomScale); e.StopPropagation(); }
void OnWheel(WheelEvent evt) { var graphView = target as GraphView; if (graphView == null) { return; } IPanel panel = (evt.target as VisualElement)?.panel; if (panel.GetCapturingElement(PointerId.mousePointerId) != null) { return; } Vector3 position = graphView.viewTransform.position; Vector3 scale = graphView.viewTransform.scale; // TODO: augment the data to have the position as well, so we don't have to read in data from the target. // 0-1 ranged center relative to size Vector2 zoomCenter = target.ChangeCoordinatesTo(graphView.contentViewContainer, evt.localMousePosition); float x = zoomCenter.x + graphView.contentViewContainer.layout.x; float y = zoomCenter.y + graphView.contentViewContainer.layout.y; position += Vector3.Scale(new Vector3(x, y, 0), scale); // Apply the new zoom. float zoom = CalculateNewZoom(scale.y, -evt.delta.y, scaleStep, referenceScale, minScale, maxScale); scale.x = zoom; scale.y = zoom; scale.z = 1; position -= Vector3.Scale(new Vector3(x, y, 0), scale); position.x = GUIUtility.RoundToPixelGrid(position.x); position.y = GUIUtility.RoundToPixelGrid(position.y); // Delay updating of the pixel cache so the scrolling appears smooth. if (graphView.elementPanel != null && keepPixelCacheOnZoom) { graphView.elementPanel.keepPixelCacheOnWorldBoundChange = true; if (m_OnTimerTicker == null) { m_OnTimerTicker = graphView.schedule.Execute(OnTimer); } m_OnTimerTicker.ExecuteLater(500); delayRepaintScheduled = true; } graphView.UpdateViewTransform(position, scale); evt.StopPropagation(); }
public void OnMouseWheel(WheelEvent e) { Point position = new Point(e.PageX, e.PageY); int delta = e.DeltaY > 0 ? -100 : 100; if (ProcessMouseEvent(new RawMouseWheelEventArgs(delta, position, GetTimestamp()))) { e.PreventDefault(); } }
void OnWheel(WheelEvent evt) { if (MouseCaptureController.IsMouseCaptured()) { return; } Zoom(-evt.delta.y, evt.localMousePosition); evt.StopPropagation(); }
private void OnScrollWheel(WheelEvent evt) { var newScale = (int)(m_Scale - evt.delta.y); UpdateScale(ClampScale(newScale)); evt.StopPropagation(); m_FitToScreenEnabled = false; m_FitToScreenToggle.SetValueWithoutNotify(m_FitToScreenEnabled); }
private void OnMouseWheelEvent(WheelEvent evt) { if (evt.delta.y > 0) { NextResult(); } else { PrevResult(); } }
private void OnMouseWheel(Event e) { WheelEvent wheelEvent = (WheelEvent)e; Point position = new Point(wheelEvent.PageX, wheelEvent.PageY); int delta = wheelEvent.DeltaY > 0 ? -100 : 100; if (ProcessMouseEvent(new RawMouseWheelEventArgs(delta, position, GetTimestamp()))) { e.PreventDefault(); } }
public void OnMouseWheel(ElementEvent e) { WheelEvent ev = (WheelEvent)(object)e; //firefox // double delta = event.detail ? event.detail * (-120) : event.wheelDelta; double delta = ev.WheelDelta; if (delta > 0) { Zoom(0.9); } else { Zoom(1.1); } }
void OnWheel(WheelEvent evt) { if (MouseCaptureController.IsMouseCaptured()) { return; } if (wheelTarget != null) { wheelTarget.OnWheel(evt, GetWheelDelta(evt.delta.y)); } if (zoomTarget != null && evt.modifiers == zoomModifiers) { zoomCurrentScale = CalculateNewZoom(zoomCurrentScale, -evt.delta.y, zoomScaleStep, zoomMinScale, zoomMaxScale); zoomTarget.OnZoom(evt, new Vector3(zoomCurrentScale, zoomCurrentScale, 1f)); } }
protected virtual void OnMouseWheel(WheelEvent e) { if (e.shiftKey) { uPixel.CyclePalette((int)Mathf.Sign(-e.mouseDelta.y)); } else { m_Size += (int)Mathf.Sign(-e.mouseDelta.y); m_Size = Mathf.Max(1, m_Size); } Vector2Int mouseCoord = GetImageCoord(Image, e.localMousePosition); uPixel.ClearBuffer(); Vector2Int[] coords = GetTargetCoords(mouseCoord); uPixel.DrawBuffer(coords); e.StopPropagation(); }
private void ZoomCallback(WheelEvent evt) { if (scale <= 0.6f) { RemoveFromClassList("zoom-in"); AddToClassList("zoom-out"); } else if (scale >= 1.5f) { RemoveFromClassList("zoom-out"); AddToClassList("zoom-in"); } else { RemoveFromClassList("zoom-out"); RemoveFromClassList("zoom-in"); } }
public void OnZoom(WheelEvent evt, Vector3 scale) { workspace.transform.scale = scale; grid.scale = (Vector2)scale; if (scale.x < 0.3f) { Debug.Log("TempCollapse"); foreach (var view in nodeTable.Values) { view.MacroView(true); } } else { foreach (var view in nodeTable.Values) { view.MacroView(false); } } }
void OnScrollWheel(WheelEvent evt) { var layout = scrollView.x.layout; var content = scrollView.x.contentContainer; var vertical = scrollView.x.verticalScroller; if (prefs.useSmoothScrolling) { var delta = evt.delta.y / 20; vertical.experimental.animation.Start(0, delta, SmoothScrollMS, (e, value) => { Scroll(value); }); } else { Scroll(evt.delta.y); } void Scroll(float delta) { if (delta != vertical.value) { evt.StopPropagation(); } if (content.layout.height - layout.height > 0) { if (delta < 0) { vertical.ScrollPageUp(Mathf.Abs(delta)); } else if (delta > 0) { vertical.ScrollPageDown(Mathf.Abs(delta)); } } } }
// ######################## FUNCTIONALITY ######################## // #region FUNCTIONALITY #region EVENT HANDLING private void OnMouseWheel(WheelEvent evt) { // do nothing if the mouse is captured if (MouseCaptureController.IsMouseCaptured()) { return; } // update zoom origin Vector2 localMousePos = this.ChangeCoordinatesTo(_origin, evt.localMousePosition); _origin.style.left = evt.localMousePosition.x; _origin.style.top = evt.localMousePosition.y; _contentContainer.style.left = _contentContainer.layout.xMin - localMousePos.x; _contentContainer.style.top = _contentContainer.layout.yMin - localMousePos.y; // calculate zoom value int wheelDir = (int)Mathf.Sign(-evt.delta.y); float scrollValue = wheelDir * _zoomSpeed; // zoom UpdateZoom(scrollValue); }
void SelectAllTypes(bool state, EventTypeSelection eventTypeSelection = EventTypeSelection.All) { foreach (KeyValuePair <long, bool> v in m_State.ToList()) { long eventTypeId = v.Key; if (eventTypeSelection == EventTypeSelection.All || (eventTypeSelection == EventTypeSelection.Mouse && (eventTypeId == MouseMoveEvent.TypeId() || eventTypeId == MouseOverEvent.TypeId() || eventTypeId == MouseDownEvent.TypeId() || eventTypeId == MouseUpEvent.TypeId() || eventTypeId == WheelEvent.TypeId() || eventTypeId == ContextClickEvent.TypeId())) || (eventTypeSelection == EventTypeSelection.Keyboard && (eventTypeId == KeyDownEvent.TypeId() || eventTypeId == KeyUpEvent.TypeId())) || (eventTypeSelection == EventTypeSelection.Drag && (eventTypeId == DragUpdatedEvent.TypeId() || eventTypeId == DragPerformEvent.TypeId() || eventTypeId == DragExitedEvent.TypeId())) || (eventTypeSelection == EventTypeSelection.Command && (eventTypeId == ValidateCommandEvent.TypeId() || eventTypeId == ExecuteCommandEvent.TypeId()))) { m_State[eventTypeId] = state; } else { // Unaffected should be reset to false m_State[eventTypeId] = false; } } UpdateValue(); }
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 HandleMouseWheelEvent(WheelEvent evt) { m_Handler(evt.delta.y); evt.StopPropagation(); }
void OnWheelEvent(WheelEvent evt) { OnRefresh(); }
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 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; } } }