src/gui/kernel/qt_cocoa_helpers_mac.mm
changeset 37 758a864f9613
parent 33 3e2da88830cd
--- a/src/gui/kernel/qt_cocoa_helpers_mac.mm	Fri Sep 17 08:34:18 2010 +0300
+++ b/src/gui/kernel/qt_cocoa_helpers_mac.mm	Mon Oct 04 01:19:32 2010 +0300
@@ -685,9 +685,11 @@
     unsigned int info = 0;
     if ([event type] == NSKeyDown) {
         NSString *characters = [event characters];
-        unichar value = [characters characterAtIndex:0];
-        qt_keymapper_private()->updateKeyMap(0, key_event, (void *)&value);
-        info = value;
+        if ([characters length]) {
+            unichar value = [characters characterAtIndex:0];
+            qt_keymapper_private()->updateKeyMap(0, key_event, (void *)&value);
+            info = value;
+        }
     }
 
     // Redirect keys to alien widgets.
@@ -1527,6 +1529,22 @@
         [theWindow display];
     }
 }
+
+void qt_cocoaStackChildWindowOnTopOfOtherChildren(QWidget *childWidget)
+{
+    if (!childWidget)
+        return;
+
+    QWidget *parent = childWidget->parentWidget();
+    if (childWidget->isWindow() && parent) {
+        if ([[qt_mac_window_for(parent) childWindows] containsObject:qt_mac_window_for(childWidget)]) {
+            QWidgetPrivate *d = qt_widget_private(childWidget);
+            d->setSubWindowStacking(false);
+            d->setSubWindowStacking(true);
+        }
+    }
+}
+
 #endif // QT_MAC_USE_COCOA
 
 QT_END_NAMESPACE