diff options
Diffstat (limited to 'intern')
-rw-r--r-- | intern/ghost/intern/GHOST_SystemCocoa.mm | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/intern/ghost/intern/GHOST_SystemCocoa.mm b/intern/ghost/intern/GHOST_SystemCocoa.mm index 114a5619fb4..76bc68d5bfe 100644 --- a/intern/ghost/intern/GHOST_SystemCocoa.mm +++ b/intern/ghost/intern/GHOST_SystemCocoa.mm @@ -934,7 +934,20 @@ bool GHOST_SystemCocoa::processEvents(bool waitForEvent) // Send event to NSApp to ensure Mac wide events are handled, // this will send events to CocoaWindow which will call back // to handleKeyEvent, handleMouseEvent and handleTabletEvent - [NSApp sendEvent:event]; + + // There is on special exception for ctrl+(shift)+tab. We do not + // get keyDown events delivered to the view because they are + // special hotkeys to switch between views, so override directly + + if([event type] == NSKeyDown && + [event keyCode] == kVK_Tab && + ([event modifierFlags] & NSControlKeyMask)) { + handleKeyEvent(event); + } + else { + [NSApp sendEvent:event]; + } + [pool drain]; } while (event != nil); #if 0 |