mirror of
https://github.com/JGRennison/OpenTTD-patches.git
synced 2024-11-16 00:12:51 +00:00
(svn r25687) -Codechange: [OSX] Pass text input directly down to the text handling.
This commit is contained in:
parent
fbbb5ddb23
commit
1a0824eaf6
@ -788,6 +788,23 @@ void cocoaReleaseAutoreleasePool()
|
||||
if (_cocoa_subdriver != NULL) UndrawMouseCursor();
|
||||
_cursor.in_window = false;
|
||||
}
|
||||
|
||||
|
||||
/** Insert the given text at the caret. */
|
||||
- (void)insertText:(id)aString
|
||||
{
|
||||
NSString *s = [ aString isKindOfClass:[ NSAttributedString class ] ] ? [ aString string ] : (NSString *)aString;
|
||||
|
||||
HandleTextInput(NULL, true);
|
||||
HandleTextInput([ s UTF8String ]);
|
||||
}
|
||||
|
||||
/** Invoke the selector if we implement it. */
|
||||
- (void)doCommandBySelector:(SEL)aSelector
|
||||
{
|
||||
if ([ self respondsToSelector:aSelector ]) [ self performSelector:aSelector ];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user