summaryrefslogtreecommitdiff
path: root/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@nokia.com>2012-08-12 09:27:39 +0200
committerSimon Hausmann <simon.hausmann@nokia.com>2012-08-12 09:27:39 +0200
commit3749d61e1f7a59f5ec5067e560af1eb610c82015 (patch)
tree73dc228333948738bbe02976cacca8cd382bc978 /Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp
parentb32b4dcd9a51ab8de6afc53d9e17f8707e1f7a5e (diff)
downloadqtwebkit-3749d61e1f7a59f5ec5067e560af1eb610c82015.tar.gz
Imported WebKit commit a77350243e054f3460d1137301d8b3faee3d2052 (http://svn.webkit.org/repository/webkit/trunk@125365)
New snapshot with build fixes for latest API changes in Qt and all WK1 Win MSVC fixes upstream
Diffstat (limited to 'Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp')
-rw-r--r--Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp b/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp
index 3955752a8..37d5d30ad 100644
--- a/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp
+++ b/Source/WebKit/blackberry/WebKitSupport/InputHandler.cpp
@@ -362,8 +362,7 @@ void InputHandler::focusedNodeChanged()
Node* node = frame->document()->focusedNode();
if (isActiveTextEdit() && m_currentFocusElement == node) {
- if (!processingChange())
- notifyClientOfKeyboardVisibilityChange(true);
+ notifyClientOfKeyboardVisibilityChange(true);
return;
}
@@ -577,7 +576,7 @@ int32_t InputHandler::convertTransactionIdToSequenceId(int32_t transactionId)
void InputHandler::spellCheckingRequestProcessed(int32_t transactionId, spannable_string_t* spannableString)
{
- if (!spannableString) {
+ if (!spannableString || !isActiveTextEdit()) {
spellCheckingRequestCancelled(transactionId, false /* isSequenceId */);
return;
}
@@ -625,6 +624,9 @@ void InputHandler::spellCheckingRequestProcessed(int32_t transactionId, spannabl
void InputHandler::spellCheckingRequestCancelled(int32_t id, bool isSequenceId)
{
+ if (!isActiveTextEdit())
+ return;
+
int32_t sequenceId = isSequenceId ? id : convertTransactionIdToSequenceId(id);
SpellChecker* sp = getSpellChecker();
if (!sp) {
@@ -636,6 +638,9 @@ void InputHandler::spellCheckingRequestCancelled(int32_t id, bool isSequenceId)
SpellChecker* InputHandler::getSpellChecker()
{
+ ASSERT(m_currentFocusElement);
+ ASSERT(m_currentFocusElement->document());
+
if (Frame* frame = m_currentFocusElement->document()->frame())
if (Editor* editor = frame->editor())
return editor->spellChecker();
@@ -659,7 +664,6 @@ void InputHandler::setElementUnfocused(bool refocusOccuring)
notifyClientOfKeyboardVisibilityChange(false);
m_webPage->m_client->inputFocusLost();
- m_webPage->m_selectionHandler->selectionPositionChanged();
// If the frame selection isn't focused, focus it.
if (!m_currentFocusElement->document()->frame()->selection()->isFocused())
@@ -1029,6 +1033,11 @@ void InputHandler::notifyClientOfKeyboardVisibilityChange(bool visible)
if (!isInputModeEnabled() && visible)
return;
+ if (processingChange()) {
+ ASSERT(visible);
+ return;
+ }
+
if (!m_delayKeyboardVisibilityChange) {
m_webPage->showVirtualKeyboard(visible);
return;