internal void Dispatch(EventBase evt, [NotNull] IPanel panel, DispatchMode dispatchMode)
        {
            evt.MarkReceivedByDispatcher();

            if (evt.eventTypeId == IMGUIEvent.TypeId())
            {
                Event e = evt.imguiEvent;
                if (e.rawType == EventType.Repaint)
                {
                    return;
                }
            }

            if (dispatchImmediately || (dispatchMode == DispatchMode.Immediate))
            {
                ProcessEvent(evt, panel);
            }
            else
            {
                evt.Acquire();
                m_Queue.Enqueue(new EventRecord {
                    m_Event = evt, m_Panel = panel
                });
            }
        }
        internal void Dispatch(EventBase evt, [NotNull] IPanel panel, DispatchMode dispatchMode)
        {
            evt.MarkReceivedByDispatcher();

            if (evt.eventTypeId == IMGUIEvent.TypeId())
            {
                Event e = evt.imguiEvent;
                if (e.rawType == EventType.Repaint)
                {
                    return;
                }
            }

            if (dispatchImmediately || (dispatchMode == DispatchMode.Immediate))
            {
                ProcessEvent(evt, panel);
            }
            else
            {
                evt.Acquire();
                m_Queue.Enqueue(new EventRecord
                {
                    m_Event      = evt,
                    m_Panel      = panel,
                    m_StackTrace = panel is BaseVisualElementPanel p &&
                                   p.panelDebug != null && p.panelDebug.hasAttachedDebuggers ? new StackTrace() : null
                });
        internal void Dispatch(EventBase evt, IPanel panel, DispatchMode dispatchMode)
        {
            evt.MarkReceivedByDispatcher();
            bool flag = evt.eventTypeId == EventBase <IMGUIEvent> .TypeId();

            if (flag)
            {
                Event imguiEvent = evt.imguiEvent;
                bool  flag2      = imguiEvent.rawType == EventType.Repaint;
                if (flag2)
                {
                    return;
                }
            }
            bool flag3 = this.dispatchImmediately || dispatchMode == DispatchMode.Immediate;

            if (flag3)
            {
                this.ProcessEvent(evt, panel);
            }
            else
            {
                evt.Acquire();
                this.m_Queue.Enqueue(new EventDispatcher.EventRecord
                {
                    m_Event = evt,
                    m_Panel = panel
                });
            }
        }
        public static ContextualMenuPopulateEvent GetPooled(EventBase triggerEvent, DropdownMenu menu, IEventHandler target, ContextualMenuManager menuManager)
        {
            ContextualMenuPopulateEvent pooled = EventBase <ContextualMenuPopulateEvent> .GetPooled(triggerEvent);

            bool flag = triggerEvent != null;

            if (flag)
            {
                triggerEvent.Acquire();
                pooled.triggerEvent = triggerEvent;
                IMouseEvent mouseEvent = triggerEvent as IMouseEvent;
                bool        flag2      = mouseEvent != null;
                if (flag2)
                {
                    pooled.modifiers          = mouseEvent.modifiers;
                    pooled.mousePosition      = mouseEvent.mousePosition;
                    pooled.localMousePosition = mouseEvent.mousePosition;
                    pooled.mouseDelta         = mouseEvent.mouseDelta;
                    pooled.button             = mouseEvent.button;
                    pooled.clickCount         = mouseEvent.clickCount;
                }
                else
                {
                    IPointerEvent pointerEvent = triggerEvent as IPointerEvent;
                    bool          flag3        = pointerEvent != null;
                    if (flag3)
                    {
                        pooled.modifiers          = pointerEvent.modifiers;
                        pooled.mousePosition      = pointerEvent.position;
                        pooled.localMousePosition = pointerEvent.position;
                        pooled.mouseDelta         = pointerEvent.deltaPosition;
                        pooled.button             = pointerEvent.button;
                        pooled.clickCount         = pointerEvent.clickCount;
                    }
                }
                IMouseEventInternal mouseEventInternal = triggerEvent as IMouseEventInternal;
                bool flag4 = mouseEventInternal != null;
                if (flag4)
                {
                    ((IMouseEventInternal)pooled).triggeredByOS = mouseEventInternal.triggeredByOS;
                }
                else
                {
                    IPointerEventInternal pointerEventInternal = triggerEvent as IPointerEventInternal;
                    bool flag5 = pointerEventInternal != null;
                    if (flag5)
                    {
                        ((IMouseEventInternal)pooled).triggeredByOS = pointerEventInternal.triggeredByOS;
                    }
                }
            }
            pooled.target = target;
            pooled.menu   = menu;
            pooled.m_ContextualMenuManager = menuManager;
            return(pooled);
        }