Bug 615935: Cancel any complex text composition for a Cocoa NPAPI plugin when it doesn't return kNPEventStartIME for a key down event. r=smichaud a=blocking2.0betaN+

This commit is contained in:
Josh Aas 2010-12-03 00:22:20 -05:00
parent c04477ac1b
commit bf92b679ec
3 changed files with 16 additions and 4 deletions

View File

@ -38,6 +38,7 @@
- (NSTextInputContext*)inputContext;
- (BOOL)interpretKeyEvent:(NSEvent*)event string:(NSString**)string;
- (void)cancelComposition;
@end

View File

@ -83,8 +83,7 @@
- (void)keyboardInputSourceChanged:(NSNotification *)notification
{
[mInputTextView setString:@""];
[self orderOut:nil];
[self cancelComposition];
}
- (BOOL)interpretKeyEvent:(NSEvent*)event string:(NSString**)string
@ -119,4 +118,10 @@
return [mInputTextView inputContext];
}
- (void)cancelComposition
{
[mInputTextView setString:@""];
[self orderOut:nil];
}
@end

View File

@ -5365,9 +5365,15 @@ static const char* ToEscapedString(NSString* aString, nsCAutoString& aBuf)
mGeckoChild->DispatchWindowEvent(pluginEvent);
if (!mGeckoChild)
return;
if (!mPluginComplexTextInputRequested) {
// Ideally we'd cancel any TSM composition here.
#ifdef NP_NO_CARBON
[[ComplexTextInputPanel sharedComplexTextInputPanel] cancelComposition];
#else
if (mPluginTSMDoc) {
::FixTSMDocument(mPluginTSMDoc);
}
#endif
return;
}