diff options
| author | Alexandru Croitor <alexandru.croitor@qt.io> | 2016-06-27 16:59:01 +0200 |
|---|---|---|
| committer | Alexandru Croitor <alexandru.croitor@theqtcompany.com> | 2016-07-01 08:55:13 +0000 |
| commit | 79930a541473b2e0f950d040c16ab6f22e4aeef3 (patch) | |
| tree | 83550dc5799be4ba81133d0c197e032845534c2c | |
| parent | 4cd6d0fc28b8d4e02c804f2f0b4e21acb2bbbb09 (diff) | |
| download | qtwebengine-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.cc | 4 | ||||
| -rw-r--r-- | chromium/content/renderer/render_view_impl.cc | 1 | ||||
| -rw-r--r-- | chromium/content/renderer/render_widget.cc | 1 | ||||
| -rw-r--r-- | chromium/content/renderer/render_widget.h | 5 |
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 |
