summaryrefslogtreecommitdiff
path: root/src/video/cocoa/event.mm
diff options
context:
space:
mode:
Diffstat (limited to 'src/video/cocoa/event.mm')
-rw-r--r--src/video/cocoa/event.mm21
1 files changed, 11 insertions, 10 deletions
diff --git a/src/video/cocoa/event.mm b/src/video/cocoa/event.mm
index 40bf57eb6..81b9db1d2 100644
--- a/src/video/cocoa/event.mm
+++ b/src/video/cocoa/event.mm
@@ -35,6 +35,7 @@
#include "../../network/network.h"
#include "../../core/random_func.hpp"
#include "../../texteff.hpp"
+#include "../../window_func.h"
#import <sys/time.h> /* gettimeofday */
@@ -399,7 +400,6 @@ static bool QZ_PollEvent()
NSString *chars;
NSPoint pt;
- NSText *fieldEditor;
switch ([ event type ]) {
case NSMouseMoved:
case NSOtherMouseDragged:
@@ -516,17 +516,18 @@ static bool QZ_PollEvent()
break;
}
- fieldEditor = [[ event window ] fieldEditor:YES forObject:nil ];
- [ fieldEditor setString:@"" ];
- [ fieldEditor interpretKeyEvents: [ NSArray arrayWithObject:event ] ];
-
- chars = [ event characters ];
- if ([ chars length ] == 0) {
+ if (EditBoxInGlobalFocus()) {
+ [ _cocoa_subdriver->cocoaview interpretKeyEvents:[ NSArray arrayWithObject:event ] ];
QZ_KeyEvent([ event keyCode ], 0, YES);
} else {
- QZ_KeyEvent([ event keyCode ], [ chars characterAtIndex:0 ], YES);
- for (uint i = 1; i < [ chars length ]; i++) {
- QZ_KeyEvent(0, [ chars characterAtIndex:i ], YES);
+ chars = [ event characters ];
+ if ([ chars length ] == 0) {
+ QZ_KeyEvent([ event keyCode ], 0, YES);
+ } else {
+ QZ_KeyEvent([ event keyCode ], [ chars characterAtIndex:0 ], YES);
+ for (uint i = 1; i < [ chars length ]; i++) {
+ QZ_KeyEvent(0, [ chars characterAtIndex:i ], YES);
+ }
}
}
break;