summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qcocoaapplication_mac.mm
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-02-18 11:24:05 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-02-18 11:24:05 (GMT)
commitc18beac8163634b48bbf1e7280923e96f5ef0a51 (patch)
treeae6d5d595d1b46bcaa721efc95c98c97e078d214 /src/gui/kernel/qcocoaapplication_mac.mm
parentfd3f9dd0f31efeea3aa0ec28b54c70d85712c7ba (diff)
parenteeb121d54e345e92ab74d8c43e07d803a0e144ea (diff)
downloadQt-c18beac8163634b48bbf1e7280923e96f5ef0a51.zip
Qt-c18beac8163634b48bbf1e7280923e96f5ef0a51.tar.gz
Qt-c18beac8163634b48bbf1e7280923e96f5ef0a51.tar.bz2
Merge branch 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into master-integration
* 'master' of scm.dev.nokia.troll.no:qt/oslo-staging-1: (62 commits) Compile. Remove these friend declarations that aren't necessary in 4.7 Added a new flag to fine-tune gesture propagation policy AIX has a #define for hz, so undef it Revert "remove -lz from OPENSSL_LIBS so as to respect qt-zlib" remove -lz from QT_LFLAGS_PSQL so as to respect qt-zlib remove -lz from OPENSSL_LIBS so as to respect qt-zlib Fix compilation with IBM xlC 7: Fix compilation of Qt Assistant when WebKit isn't built. Mac: QSystemTrayIcon::DoubleClick and midmouse not working add test for toDateTime() using QLocale::LongFormat remove debug info add test case for QTBUG-7898 that QLocale::toDateTime(QString, FormatType) cannot convert value correctly fix QTBUG-7898 QNAM HTTP: More micro optimization in QHttpNetworkRequest QNAM HTTP: Some micro optimization in QHttpNetworkRequest QNAM HTTP: Trivial optimization Revert "Optimized QLocale to access system locale on demand." doc: Added "\sa {QML Basic Types} to each QML basic type page. Incorrect mouse coordinates used when compressing WM_MOUSEMOVE messages. ...
Diffstat (limited to 'src/gui/kernel/qcocoaapplication_mac.mm')
-rw-r--r--src/gui/kernel/qcocoaapplication_mac.mm45
1 files changed, 45 insertions, 0 deletions
diff --git a/src/gui/kernel/qcocoaapplication_mac.mm b/src/gui/kernel/qcocoaapplication_mac.mm
index 5b98420..5629940 100644
--- a/src/gui/kernel/qcocoaapplication_mac.mm
+++ b/src/gui/kernel/qcocoaapplication_mac.mm
@@ -107,5 +107,50 @@
| NSFontPanelStrikethroughEffectModeMask;
}
+
+- (void)qt_sendPostedMessage:(NSEvent *)event
+{
+ // WARNING: data1 and data2 is truncated to from 64-bit to 32-bit on OS 10.5!
+ // That is why we need to split the address in two parts:
+ quint64 lower = [event data1];
+ quint64 upper = [event data2];
+ QCocoaPostMessageArgs *args = reinterpret_cast<QCocoaPostMessageArgs *>(lower | (upper << 32));
+ [args->target performSelector:args->selector];
+ delete args;
+}
+
+- (BOOL)qt_sendEvent:(NSEvent *)event
+{
+ if ([event type] == NSApplicationDefined) {
+ switch ([event subtype]) {
+ case QtCocoaEventSubTypePostMessage:
+ [NSApp qt_sendPostedMessage:event];
+ return true;
+ default:
+ break;
+ }
+ }
+ return false;
+}
+
@end
+
+@implementation QNSApplication
+
+// WARNING: If Qt did not create NSApplication (this can e.g.
+// happend if Qt is used as a plugin from a 3rd-party cocoa
+// application), QNSApplication::sendEvent will never be called.
+// SO DO NOT RELY ON THIS FUNCTION BEING AVAILABLE.
+// Plugin developers that _do_ control the NSApplication sub-class
+// implementation of the 3rd-party application can call qt_sendEvent
+// from the sub-class event handler (like we do here) to work around
+// any issues.
+- (void)sendEvent:(NSEvent *)event
+{
+ if (![self qt_sendEvent:event])
+ [super sendEvent:event];
+}
+
+@end
+
#endif