summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandru Croitor <alexandru.croitor@qt.io>2016-06-27 16:59:01 +0200
committerAlexandru Croitor <alexandru.croitor@theqtcompany.com>2016-07-01 08:55:13 +0000
commit79930a541473b2e0f950d040c16ab6f22e4aeef3 (patch)
tree83550dc5799be4ba81133d0c197e032845534c2c
parent4cd6d0fc28b8d4e02c804f2f0b4e21acb2bbbb09 (diff)
downloadqtwebengine-chromium-79930a541473b2e0f950d040c16ab6f22e4aeef3.tar.gz
Clear selected text when starting a new find operation.
Task-number: QTBUG-54071 Change-Id: Ia6e8f57bdde1433116f7eee63ac7b89bff8ddccb Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r--chromium/content/renderer/render_frame_impl.cc4
-rw-r--r--chromium/content/renderer/render_view_impl.cc1
-rw-r--r--chromium/content/renderer/render_widget.cc1
-rw-r--r--chromium/content/renderer/render_widget.h5
4 files changed, 10 insertions, 1 deletions
diff --git a/chromium/content/renderer/render_frame_impl.cc b/chromium/content/renderer/render_frame_impl.cc
index a3ba1f6a0b9..1e6c3f28f8a 100644
--- a/chromium/content/renderer/render_frame_impl.cc
+++ b/chromium/content/renderer/render_frame_impl.cc
@@ -2977,7 +2977,9 @@ void RenderFrameImpl::requestNotificationPermission(
}
void RenderFrameImpl::didChangeSelection(bool is_empty_selection) {
- if (!GetRenderWidget()->handling_input_event() && !handling_select_range_)
+ if (!GetRenderWidget()->handling_input_event()
+ && !GetRenderWidget()->handling_find_op()
+ && !handling_select_range_)
return;
diff --git a/chromium/content/renderer/render_view_impl.cc b/chromium/content/renderer/render_view_impl.cc
index dbb231f3fdf..e3704e1f271 100644
--- a/chromium/content/renderer/render_view_impl.cc
+++ b/chromium/content/renderer/render_view_impl.cc
@@ -2364,6 +2364,7 @@ blink::WebPlugin* RenderViewImpl::GetWebPluginForFind() {
void RenderViewImpl::OnFind(int request_id,
const base::string16& search_text,
const WebFindOptions& options) {
+ base::AutoReset<bool> handling_find_op(&handling_find_op_, true);
WebFrame* main_frame = webview()->mainFrame();
blink::WebPlugin* plugin = GetWebPluginForFind();
// Check if the plugin still exists in the document.
diff --git a/chromium/content/renderer/render_widget.cc b/chromium/content/renderer/render_widget.cc
index d0a6ca3df3f..aec5bf61f8e 100644
--- a/chromium/content/renderer/render_widget.cc
+++ b/chromium/content/renderer/render_widget.cc
@@ -491,6 +491,7 @@ RenderWidget::RenderWidget(blink::WebPopupType popup_type,
display_mode_(blink::WebDisplayModeUndefined),
has_focus_(false),
handling_input_event_(false),
+ handling_find_op_(false),
handling_event_overscroll_(nullptr),
handling_ime_event_(false),
handling_event_type_(WebInputEvent::Undefined),
diff --git a/chromium/content/renderer/render_widget.h b/chromium/content/renderer/render_widget.h
index f62a383d674..71f288f5b5c 100644
--- a/chromium/content/renderer/render_widget.h
+++ b/chromium/content/renderer/render_widget.h
@@ -129,6 +129,7 @@ class CONTENT_EXPORT RenderWidget
blink::WebDisplayMode display_mode() const { return display_mode_; }
bool is_hidden() const { return is_hidden_; }
bool handling_input_event() const { return handling_input_event_; }
+ bool handling_find_op() const { return handling_find_op_; }
// Temporary for debugging purposes...
bool closing() const { return closing_; }
bool is_swapped_out() { return is_swapped_out_; }
@@ -680,6 +681,10 @@ class CONTENT_EXPORT RenderWidget
// Are we currently handling an input event?
bool handling_input_event_;
+ // Indicates that a find operation is in process (OnFind).
+ // Used to clear currently selected text in a RenderWidget.
+ bool handling_find_op_;
+
// Used to intercept overscroll notifications while an event is being
// handled. If the event causes overscroll, the overscroll metadata can be
// bundled in the event ack, saving an IPC. Note that we must continue