Modified: trunk/Source/WebKit/blackberry/Api/WebPageClient.h (136688 => 136689)
--- trunk/Source/WebKit/blackberry/Api/WebPageClient.h 2012-12-05 15:51:13 UTC (rev 136688)
+++ trunk/Source/WebKit/blackberry/Api/WebPageClient.h 2012-12-05 15:52:50 UTC (rev 136689)
@@ -155,7 +155,7 @@
virtual void notifySelectionDetailsChanged(const Platform::IntRect& documentStartRect, const Platform::IntRect& documentEndRect, const Platform::IntRectRegion& documentRegion, bool overrideTouchHandling = false) = 0;
virtual void cancelSelectionVisuals() = 0;
virtual void notifySelectionHandlesReversed() = 0;
- virtual void notifyCaretChanged(const Platform::IntRect& documentCaretRect, bool userTouchTriggered, bool isSingleLineInput = false, const Platform::IntRect& singleLineDocumentBoundingBox = Platform::IntRect()) = 0;
+ virtual void notifyCaretChanged(const Platform::IntRect& documentCaretRect, bool userTouchTriggered, bool isSingleLineInput = false, const Platform::IntRect& singleLineDocumentBoundingBox = Platform::IntRect(), bool textFieldIsEmpty = false) = 0;
virtual void cursorChanged(Platform::CursorType, const char* url, const Platform::IntPoint& hotSpotInImage) = 0;
Modified: trunk/Source/WebKit/blackberry/ChangeLog (136688 => 136689)
--- trunk/Source/WebKit/blackberry/ChangeLog 2012-12-05 15:51:13 UTC (rev 136688)
+++ trunk/Source/WebKit/blackberry/ChangeLog 2012-12-05 15:52:50 UTC (rev 136689)
@@ -1,3 +1,23 @@
+2012-12-05 Yongxin Dai <yo...@rim.com>
+
+ [BlackBerry] Avoid showing FCC on empty text field in a different way
+ https://bugs.webkit.org/show_bug.cgi?id=104019
+
+ Reviewed by Rob Buis.
+
+ PR #222796
+
+ Add text field empty flag along with the caret change notification so that
+ FineCursorContnrol is able to avoid showing FCC on empty text filed.
+ Previous approach, notifying client with empty caret on empty text field,
+ causes problem. Its code is removed.
+
+ Reviewed Internally by Mike Fenton.
+
+ * Api/WebPageClient.h:
+ * WebKitSupport/SelectionHandler.cpp:
+ (BlackBerry::WebKit::SelectionHandler::caretPositionChanged):
+
2012-12-04 Sean Wang <xuewen.w...@torchmobile.com.cn>
[BlackBerry] VKB flickers in and out when tapping on webview after text selection on URL bar
https://bugs.webkit.org/show_bug.cgi?id=103874
Modified: trunk/Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp (136688 => 136689)
--- trunk/Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp 2012-12-05 15:51:13 UTC (rev 136688)
+++ trunk/Source/WebKit/blackberry/WebKitSupport/SelectionHandler.cpp 2012-12-05 15:52:50 UTC (rev 136689)
@@ -977,12 +977,9 @@
SelectionLog(LogLevelInfo, "SelectionHandler::caretPositionChanged");
WebCore::IntRect caretLocation;
- // If the input field is empty, we always turn off the caret.
// If the input field is not active, we must be turning off the caret.
- bool emptyInputField = m_webPage->m_inputHandler->elementText().isEmpty();
- if (emptyInputField || (!m_webPage->m_inputHandler->isInputMode() && m_caretActive)) {
- if (!emptyInputField)
- m_caretActive = false;
+ if (!m_webPage->m_inputHandler->isInputMode() && m_caretActive) {
+ m_caretActive = false;
// Send an empty caret change to turn off the caret.
m_webPage->m_client->notifyCaretChanged(caretLocation, m_webPage->m_touchEventHandler->lastFatFingersResult().isTextInput() /* userTouchTriggered */);
return;
@@ -1018,10 +1015,12 @@
nodeBoundingBox.intersect(clippingRectForContent);
}
- SelectionLog(LogLevelInfo, "SelectionHandler::caretPositionChanged: %s line input, single line bounding box (%d, %d) %dx%d",
- isSingleLineInput ? "single" : "multi", nodeBoundingBox.x(), nodeBoundingBox.y(), nodeBoundingBox.width(), nodeBoundingBox.height());
+ SelectionLog(LogLevelInfo, "SelectionHandler::caretPositionChanged: %s line input, single line bounding box (%d, %d) %dx%d%s",
+ isSingleLineInput ? "single" : "multi", nodeBoundingBox.x(), nodeBoundingBox.y(), nodeBoundingBox.width(), nodeBoundingBox.height(),
+ m_webPage->m_inputHandler->elementText().isEmpty() ? ", empty text field" : "");
- m_webPage->m_client->notifyCaretChanged(caretLocation, m_webPage->m_touchEventHandler->lastFatFingersResult().isTextInput() /* userTouchTriggered */, isSingleLineInput, nodeBoundingBox);
+ m_webPage->m_client->notifyCaretChanged(caretLocation, m_webPage->m_touchEventHandler->lastFatFingersResult().isTextInput() /* userTouchTriggered */,
+ isSingleLineInput, nodeBoundingBox, m_webPage->m_inputHandler->elementText().isEmpty());
}
bool SelectionHandler::selectionContains(const WebCore::IntPoint& point)