Have showInputWindow hand off input events to the bottom line input window.
parent
440a1ee3ba
commit
2253d22eb8
|
|
@ -24,6 +24,6 @@
|
||||||
@property (retain) NSString *currentInputLanguage;
|
@property (retain) NSString *currentInputLanguage;
|
||||||
|
|
||||||
- (void) mainLoop;
|
- (void) mainLoop;
|
||||||
- (void) showInputWindow:(bool)show withText:(id)text;
|
- (void) showInputWindow:(bool)show withEvent:(NSEvent*)textEvent;
|
||||||
- (void) languageUpdated;
|
- (void) languageUpdated;
|
||||||
@end
|
@end
|
||||||
|
|
|
||||||
|
|
@ -321,11 +321,16 @@ attributedStringInfo getSegments(NSAttributedString *str)
|
||||||
{
|
{
|
||||||
if (!mMarkedTextAllowed && [[theEvent characters] characterAtIndex:0] != NSBackspaceCharacter)
|
if (!mMarkedTextAllowed && [[theEvent characters] characterAtIndex:0] != NSBackspaceCharacter)
|
||||||
{
|
{
|
||||||
showInputWindow(true, @"");
|
[(LLAppDelegate*)[NSApp delegate] showInputWindow:true withEvent:theEvent];
|
||||||
[[[(LLAppDelegate*)[NSApp delegate] inputView] inputContext] handleEvent:theEvent];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[[self inputContext] handleEvent:theEvent];
|
||||||
|
} else if ([[theEvent charactersIgnoringModifiers] characterAtIndex:0] == 13 || [[theEvent charactersIgnoringModifiers] characterAtIndex:0] == 3)
|
||||||
|
{
|
||||||
|
// callKeyDown won't return the value we expect for enter or return. Handle them as a separate case.
|
||||||
[[self inputContext] handleEvent:theEvent];
|
[[self inputContext] handleEvent:theEvent];
|
||||||
}
|
}
|
||||||
|
|
||||||
// OS X intentionally does not send us key-up information on cmd-key combinations.
|
// OS X intentionally does not send us key-up information on cmd-key combinations.
|
||||||
// This behaviour is not a bug, and only applies to cmd-combinations (no others).
|
// This behaviour is not a bug, and only applies to cmd-combinations (no others).
|
||||||
// Since SL assumes we receive those, we fake it here.
|
// Since SL assumes we receive those, we fake it here.
|
||||||
|
|
|
||||||
|
|
@ -91,7 +91,6 @@ void closeWindow(NSWindowRef window);
|
||||||
void removeGLView(GLViewRef view);
|
void removeGLView(GLViewRef view);
|
||||||
void makeFirstResponder(NSWindowRef window, GLViewRef view);
|
void makeFirstResponder(NSWindowRef window, GLViewRef view);
|
||||||
void setupInputWindow(NSWindowRef window, GLViewRef view);
|
void setupInputWindow(NSWindowRef window, GLViewRef view);
|
||||||
void showInputWindow(bool show, void* text);
|
|
||||||
|
|
||||||
// These are all implemented in llwindowmacosx.cpp.
|
// These are all implemented in llwindowmacosx.cpp.
|
||||||
// This is largely for easier interop between Obj-C and C++ (at least in the viewer's case due to the BOOL vs. BOOL conflict)
|
// This is largely for easier interop between Obj-C and C++ (at least in the viewer's case due to the BOOL vs. BOOL conflict)
|
||||||
|
|
|
||||||
|
|
@ -367,11 +367,6 @@ void setupInputWindow(NSWindowRef window, GLViewRef glview)
|
||||||
[[(LLAppDelegate*)[NSApp delegate] inputView] setGLView:(LLOpenGLView*)glview];
|
[[(LLAppDelegate*)[NSApp delegate] inputView] setGLView:(LLOpenGLView*)glview];
|
||||||
}
|
}
|
||||||
|
|
||||||
void showInputWindow(bool show, void* text)
|
|
||||||
{
|
|
||||||
[(LLAppDelegate*)[NSApp delegate] showInputWindow:show withText:(id)text];
|
|
||||||
}
|
|
||||||
|
|
||||||
void commitCurrentPreedit(GLViewRef glView)
|
void commitCurrentPreedit(GLViewRef glView)
|
||||||
{
|
{
|
||||||
[(LLOpenGLView*)glView commitCurrentPreedit];
|
[(LLOpenGLView*)glView commitCurrentPreedit];
|
||||||
|
|
|
||||||
|
|
@ -71,7 +71,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void) showInputWindow:(bool)show withText:(id)text
|
- (void) showInputWindow:(bool)show withEvent:(NSEvent*)textEvent
|
||||||
{
|
{
|
||||||
// How to add support for new languages with the input window:
|
// How to add support for new languages with the input window:
|
||||||
// Simply append this array with the language code (ja for japanese, ko for korean, zh for chinese, etc.)
|
// Simply append this array with the language code (ja for japanese, ko for korean, zh for chinese, etc.)
|
||||||
|
|
@ -83,7 +83,10 @@
|
||||||
{
|
{
|
||||||
NSLog(@"Showing input window.");
|
NSLog(@"Showing input window.");
|
||||||
[inputWindow makeKeyAndOrderFront:inputWindow];
|
[inputWindow makeKeyAndOrderFront:inputWindow];
|
||||||
[inputView setMarkedText:text selectedRange:NSMakeRange(0, 1)];
|
if (textEvent != nil)
|
||||||
|
{
|
||||||
|
[[inputView inputContext] handleEvent:textEvent];
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
NSLog(@"Hiding input window.");
|
NSLog(@"Hiding input window.");
|
||||||
[inputWindow orderOut:inputWindow];
|
[inputWindow orderOut:inputWindow];
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue