summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorMorten Sorvig <morten.sorvig@nokia.com>2011-06-09 11:18:27 +0200
committerMorten Sorvig <morten.sorvig@nokia.com>2011-06-09 11:19:12 +0200
commite3410908a2f81309dd31cc7389443623c3af61d2 (patch)
tree910046daf8d824ea6480fff5c2386c5115038afa /src/gui
parent0a4c2eae4bd5fcbf1ac3d91e7870def7e8b4a66b (diff)
Add QEventDispatcherMac.
Create it directly in QGuiApplication for now, later on we'll move it to the cocoa plugin.
Diffstat (limited to 'src/gui')
-rw-r--r--src/gui/kernel/kernel.pri8
-rw-r--r--src/gui/kernel/qeventdispatcher_qpa.cpp2
-rw-r--r--src/gui/kernel/qguiapplication.cpp9
3 files changed, 18 insertions, 1 deletions
diff --git a/src/gui/kernel/kernel.pri b/src/gui/kernel/kernel.pri
index 7d3140143e..f166e4ffeb 100644
--- a/src/gui/kernel/kernel.pri
+++ b/src/gui/kernel/kernel.pri
@@ -90,4 +90,12 @@ qpa {
}
}
+mac {
+ HEADERS += \
+ kernel/qeventdispatcher_mac_p.h
+ OBJECTIVE_SOURCES += \
+ kernel/qeventdispatcher_mac.mm
+ LIBS += -framework CoreFoundation -framework Cocoa -framework Carbon
+}
+
win32:HEADERS+=kernel/qwindowdefs_win.h
diff --git a/src/gui/kernel/qeventdispatcher_qpa.cpp b/src/gui/kernel/qeventdispatcher_qpa.cpp
index b3f41bf2c4..1a67fee4cd 100644
--- a/src/gui/kernel/qeventdispatcher_qpa.cpp
+++ b/src/gui/kernel/qeventdispatcher_qpa.cpp
@@ -111,12 +111,14 @@ bool QEventDispatcherQPA::processEvents(QEventLoop::ProcessEventsFlags flags)
delete event;
}
+#ifdef Q_OS_MAC // (inverted inheritance on mac: QEventDispatcherMac calls QEventDispatcherQPA)
if (!d->interrupt) {
if (EVENTDISPATCHERBASE::processEvents(flags)) {
EVENTDISPATCHERBASE::processEvents(flags);
return true;
}
}
+#endif
return (nevents > 0);
}
diff --git a/src/gui/kernel/qguiapplication.cpp b/src/gui/kernel/qguiapplication.cpp
index 468e8c3bfd..81124473bd 100644
--- a/src/gui/kernel/qguiapplication.cpp
+++ b/src/gui/kernel/qguiapplication.cpp
@@ -50,6 +50,9 @@
#include "qeventdispatcher_glib_qpa_p.h"
#endif
#include "qeventdispatcher_qpa_p.h"
+#ifdef Q_OS_MAC
+#include "qeventdispatcher_mac_p.h"
+#endif
#include <QtCore/QAbstractEventDispatcher>
#include <QtCore/private/qcoreapplication_p.h>
@@ -245,7 +248,11 @@ void QGuiApplicationPrivate::createEventDispatcher()
eventDispatcher = new QPAEventDispatcherGlib(q);
else
#endif
- eventDispatcher = new QEventDispatcherQPA(q);
+#ifdef Q_OS_MAC
+ eventDispatcher = new QEventDispatcherMac(q);
+#else
+ eventDispatcher = new QEventDispatcherQPA(q);
+#endif
}
void QGuiApplicationPrivate::init()