diff options
author | Qt Continuous Integration System <qt-info@nokia.com> | 2010-02-18 11:24:05 (GMT) |
---|---|---|
committer | Qt Continuous Integration System <qt-info@nokia.com> | 2010-02-18 11:24:05 (GMT) |
commit | c18beac8163634b48bbf1e7280923e96f5ef0a51 (patch) | |
tree | ae6d5d595d1b46bcaa721efc95c98c97e078d214 /src/gui/kernel/qcocoaapplication_mac.mm | |
parent | fd3f9dd0f31efeea3aa0ec28b54c70d85712c7ba (diff) | |
parent | eeb121d54e345e92ab74d8c43e07d803a0e144ea (diff) | |
download | Qt-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.mm | 45 |
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 |