summaryrefslogtreecommitdiffstats
path: root/src/gui
diff options
context:
space:
mode:
authorPrasanth Ullattil <prasanth.ullattil@nokia.com>2010-08-03 12:49:28 (GMT)
committerToby Tomkins <toby.tomkins@nokia.com>2010-08-04 03:48:37 (GMT)
commit57738be581e35649d5b32a8dd30c6f01826e8bc5 (patch)
tree18fac085ffab62351efa7977e3ec0fffeafeffd7 /src/gui
parentf4db30b8197e27707f98f4547a0528bd1d0cbd31 (diff)
downloadQt-57738be581e35649d5b32a8dd30c6f01826e8bc5.zip
Qt-57738be581e35649d5b32a8dd30c6f01826e8bc5.tar.gz
Qt-57738be581e35649d5b32a8dd30c6f01826e8bc5.tar.bz2
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 (cherry picked from commit 307601da8d3b64de7b7d83a6de0b5dac290b0eb6)
Diffstat (limited to 'src/gui')
-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 647cb86..7d23abf 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.