summaryrefslogtreecommitdiffstats
path: root/src/gui/kernel/qt_cocoa_helpers_mac.mm
diff options
context:
space:
mode:
authorPrasanth Ullattil <prasanth.ullattil@nokia.com>2010-08-03 14:49:28 +0200
committerPrasanth Ullattil <prasanth.ullattil@nokia.com>2010-08-03 14:55:18 +0200
commit307601da8d3b64de7b7d83a6de0b5dac290b0eb6 (patch)
treec4ae0b701cc7723d842888b24a45265a0c38c472 /src/gui/kernel/qt_cocoa_helpers_mac.mm
parent99a6ff848dd90a896a8f8b58379bcc37c5733566 (diff)
Crash when pressing the '£' key on Belgian Keyboard layout (Cocoa)
In some cases the NSKeyDown event won't have fully constructed string in the [NSEvent characters]. So we need to add a guard before accessing the elements of this NSString. Task-number: QTBUG-12474 Reviewed-by: Richard Moe Gustavsen
Diffstat (limited to 'src/gui/kernel/qt_cocoa_helpers_mac.mm')
-rw-r--r--src/gui/kernel/qt_cocoa_helpers_mac.mm8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/gui/kernel/qt_cocoa_helpers_mac.mm b/src/gui/kernel/qt_cocoa_helpers_mac.mm
index 647cb8671d..7d23abff8a 100644
--- a/src/gui/kernel/qt_cocoa_helpers_mac.mm
+++ b/src/gui/kernel/qt_cocoa_helpers_mac.mm
@@ -685,9 +685,11 @@ bool qt_dispatchKeyEvent(void * /*NSEvent * */ keyEvent, QWidget *widgetToGetEve
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.