bool WebViewInputMethodFilter::sendKeyEventWithCompositionResults(GdkEventKey* event, ResultsToSend resultsToSend, EventFakedForComposition) { PlatformKeyboardEvent platformEvent(event, CompositionResults(CompositionResults::WillSendCompositionResultsSoon)); if (!focusedOrMainFrame()->eventHandler().keyEvent(platformEvent)) return false; if (resultsToSend & Composition && !m_confirmedComposition.isNull()) confirmCompositionText(m_confirmedComposition); if (resultsToSend & Preedit && !m_preedit.isNull()) setPreedit(m_preedit, m_cursorOffset); return true; }
void InputMethodFilter::handleKeyboardEvent(GdkEventKey* event, const String& simpleString, EventFakedForComposition faked) { #if ENABLE(API_TESTS) if (m_testingMode) { logHandleKeyboardEventForTesting(event, simpleString, faked); return; } #endif if (m_filterKeyEventCompletionHandler) { m_filterKeyEventCompletionHandler(CompositionResults(simpleString), faked); m_filterKeyEventCompletionHandler = nullptr; } else m_page->handleKeyboardEvent(NativeWebKeyboardEvent(reinterpret_cast<GdkEvent*>(event), CompositionResults(simpleString), faked, Vector<String>())); }
void InputMethodFilter::handleKeyboardEventWithCompositionResults(GdkEventKey* event, ResultsToSend resultsToSend, EventFakedForComposition faked) { #if ENABLE(API_TESTS) if (m_testingMode) { logHandleKeyboardEventWithCompositionResultsForTesting(event, resultsToSend, faked); return; } #endif if (m_filterKeyEventCompletionHandler) { m_filterKeyEventCompletionHandler(CompositionResults(CompositionResults::WillSendCompositionResultsSoon), faked); m_filterKeyEventCompletionHandler = nullptr; } else m_page->handleKeyboardEvent(NativeWebKeyboardEvent(reinterpret_cast<GdkEvent*>(event), CompositionResults(CompositionResults::WillSendCompositionResultsSoon), faked, Vector<String>())); if (resultsToSend & Composition && !m_confirmedComposition.isNull()) m_page->confirmComposition(m_confirmedComposition, -1, 0); if (resultsToSend & Preedit && !m_preedit.isNull()) { m_page->setComposition(m_preedit, Vector<CompositionUnderline>{ CompositionUnderline(0, m_preedit.length(), Color(1, 1, 1), false) }, m_cursorOffset, m_cursorOffset, 0 /* replacement start */, 0 /* replacement end */); } }
bool WebViewInputMethodFilter::sendSimpleKeyEvent(GdkEventKey* event, WTF::String simpleString, EventFakedForComposition) { PlatformKeyboardEvent platformEvent(event, CompositionResults(simpleString)); return focusedOrMainFrame()->eventHandler().keyEvent(platformEvent); }