1// Copyright (C) 2025 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#include "qwaylandeventdispatcher_p.h"
5
6QT_BEGIN_NAMESPACE
7
8namespace QtWaylandClient {
9
10QWaylandEventDispatcher *QWaylandEventDispatcher::eventDispatcher = nullptr;
11
12QAbstractEventDispatcher *QWaylandEventDispatcher::createEventDispatcher()
13{
14#if !defined(QT_NO_GLIB) && !defined(Q_OS_WIN)
15 if (qEnvironmentVariableIsEmpty(varName: "QT_NO_GLIB") && QEventDispatcherGlib::versionSupported())
16 return new QWaylandGlibEventDispatcher();
17#endif
18 return new QWaylandUnixEventDispatcher();
19}
20
21QWaylandEventDispatcher::QWaylandEventDispatcher()
22{
23 Q_ASSERT(!eventDispatcher);
24 eventDispatcher = this;
25}
26
27QWaylandEventDispatcher::~QWaylandEventDispatcher()
28{
29 Q_ASSERT(eventDispatcher == this);
30 eventDispatcher = nullptr;
31}
32
33bool QWaylandUnixEventDispatcher::processEvents(QEventLoop::ProcessEventsFlags flags)
34{
35 m_flags = flags;
36 return QUnixEventDispatcherQPA::processEvents(flags);
37}
38
39QEventLoop::ProcessEventsFlags QWaylandUnixEventDispatcher::flags() const
40{
41 return m_flags;
42}
43
44#if !defined(QT_NO_GLIB) && !defined(Q_OS_WIN)
45
46QEventLoop::ProcessEventsFlags QWaylandGlibEventDispatcher::flags() const
47{
48 return m_flags;
49}
50
51#endif
52
53}
54
55QT_END_NAMESPACE
56

source code of qtbase/src/plugins/platforms/wayland/qwaylandeventdispatcher.cpp