REGRESSION (r165972): Can't type into text fields in Flash
authorap@apple.com <ap@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 12 May 2014 23:17:46 +0000 (23:17 +0000)
committerap@apple.com <ap@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 12 May 2014 23:17:46 +0000 (23:17 +0000)
https://bugs.webkit.org/show_bug.cgi?id=132840
<rdar://problem/16671969>

Reviewed by Anders Carlsson.

* UIProcess/API/mac/WKView.mm: (-[WKView inputContext]): Restore a function that
got accidentally lost when adding async text input code.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@168654 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit2/ChangeLog
Source/WebKit2/UIProcess/API/mac/WKView.mm

index 772fef9..ecf2fe1 100644 (file)
@@ -1,3 +1,14 @@
+2014-05-12  Alexey Proskuryakov  <ap@apple.com>
+
+        REGRESSION (r165972): Can't type into text fields in Flash
+        https://bugs.webkit.org/show_bug.cgi?id=132840
+        <rdar://problem/16671969>
+
+        Reviewed by Anders Carlsson.
+
+        * UIProcess/API/mac/WKView.mm: (-[WKView inputContext]): Restore a function that
+        got accidentally lost when adding async text input code.
+
 2014-05-12  Chris Fleizach  <cfleizach@apple.com>
 
         AX: .js dialogs shown in unload while AX is running crash WebKit.
index 77fb784..b416f37 100644 (file)
@@ -1898,6 +1898,20 @@ static void extractUnderlines(NSAttributedString *string, Vector<CompositionUnde
         parameters->eventInterpretationHadSideEffects |= eventHandled;
 }
 
+- (NSTextInputContext *)inputContext
+{
+    WKViewInterpretKeyEventsParameters* parameters = _data->_interpretKeyEventsParameters;
+
+    if (_data->_pluginComplexTextInputIdentifier && !parameters)
+        return [[WKTextInputWindowController sharedTextInputWindowController] inputContext];
+
+    // Disable text input machinery when in non-editable content. An invisible inline input area affects performance, and can prevent Expose from working.
+    if (!_data->_page->editorState().isContentEditable)
+        return nil;
+
+    return [super inputContext];
+}
+
 - (NSRange)selectedRange
 {
     [self _executeSavedKeypressCommands];