From fc39cf729508dc79e63394a46fcd3d575aebf426 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Thu, 25 Sep 2008 06:37:09 +0000 Subject: [PATCH] avoiding crash for pure modifier events git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@55852 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/osx/cocoa/window.mm | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/osx/cocoa/window.mm b/src/osx/cocoa/window.mm index 561270d96a..cc9a21066a 100644 --- a/src/osx/cocoa/window.mm +++ b/src/osx/cocoa/window.mm @@ -112,6 +112,7 @@ long wxOSXTranslateCocoaKey(unsigned short code, int unichar ) void SetupKeyEvent( wxKeyEvent &wxevent , NSEvent * nsEvent ) { UInt32 modifiers = [nsEvent modifierFlags] ; + int eventType = [nsEvent type]; wxevent.m_shiftDown = modifiers & NSShiftKeyMask; wxevent.m_controlDown = modifiers & NSControlKeyMask; @@ -119,11 +120,14 @@ void SetupKeyEvent( wxKeyEvent &wxevent , NSEvent * nsEvent ) wxevent.m_metaDown = modifiers & NSCommandKeyMask; wxString chars; - NSString* nschars = [nsEvent characters]; - if ( nschars ) + if ( eventType != NSFlagsChanged ) { - wxCFStringRef cfchars((CFStringRef)[nschars retain]); - chars = cfchars.AsString(); + NSString* nschars = [nsEvent characters]; + if ( nschars ) + { + wxCFStringRef cfchars((CFStringRef)[nschars retain]); + chars = cfchars.AsString(); + } } int unichar = chars.Length() > 0 ? chars[0] : 0; @@ -136,7 +140,6 @@ void SetupKeyEvent( wxKeyEvent &wxevent , NSEvent * nsEvent ) wxevent.m_rawFlags = modifiers; wxevent.SetTimestamp( [nsEvent timestamp] * 1000.0 ) ; - int eventType = [nsEvent type]; switch (eventType) { case NSKeyDown : -- 2.45.2