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, [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, 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
                });
            }
        }