Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(998)

Unified Diff: content/browser/web_contents/touch_editable_impl_aura.cc

Issue 963103003: Fix touch editing handles not shown after trying overscroll (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Added test Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/web_contents/touch_editable_impl_aura.cc
diff --git a/content/browser/web_contents/touch_editable_impl_aura.cc b/content/browser/web_contents/touch_editable_impl_aura.cc
index c7adfd8742629b0c59323064875a9c63cd26d26a..622b49045ec28535f7c8368ca763e6ba4bff4ba7 100644
--- a/content/browser/web_contents/touch_editable_impl_aura.cc
+++ b/content/browser/web_contents/touch_editable_impl_aura.cc
@@ -62,11 +62,12 @@ void TouchEditableImplAura::UpdateEditingController() {
}
void TouchEditableImplAura::OverscrollStarted() {
- scrolls_in_progress_++;
+ overscroll_in_progress_ = true;
}
void TouchEditableImplAura::OverscrollCompleted() {
- ScrollEnded();
+ overscroll_in_progress_ = false;
+ StartTouchEditingIfNecessary();
}
////////////////////////////////////////////////////////////////////////////////
@@ -106,8 +107,8 @@ void TouchEditableImplAura::OnSelectionOrCursorChanged(
// If touch editing handles were not visible, we bring them up only if the
// current event is a gesture event, no scroll/fling/overscoll is in progress,
// and there is non-zero selection on the page
- if (selection_gesture_in_process_ && !scrolls_in_progress_ &&
- selection_anchor_ != selection_focus_) {
+ if (selection_gesture_in_process_ && !scroll_in_progress_ &&
+ !overscroll_in_progress_ && selection_anchor_ != selection_focus_) {
StartTouchEditing();
selection_gesture_in_process_ = false;
}
@@ -158,7 +159,7 @@ bool TouchEditableImplAura::HandleInputEvent(const ui::Event* event) {
selection_gesture_in_process_ = true;
break;
case ui::ET_GESTURE_SCROLL_BEGIN:
- scrolls_in_progress_++;
+ scroll_in_progress_ = true;;
// We need to hide selection handles during scroll (including fling and
// overscroll), but they should be re-activated after scrolling if:
// - an existing scroll decided that handles should be shown after
@@ -172,7 +173,8 @@ bool TouchEditableImplAura::HandleInputEvent(const ui::Event* event) {
EndTouchEditing(true);
break;
case ui::ET_GESTURE_SCROLL_END:
- ScrollEnded();
+ scroll_in_progress_ = false;
+ StartTouchEditingIfNecessary();
break;
default:
break;
@@ -191,7 +193,8 @@ void TouchEditableImplAura::GestureEventAck(int gesture_event_type) {
}
void TouchEditableImplAura::DidStopFlinging() {
- ScrollEnded();
+ scroll_in_progress_ = false;
+ StartTouchEditingIfNecessary();
}
void TouchEditableImplAura::OnViewDestroyed() {
@@ -348,15 +351,16 @@ TouchEditableImplAura::TouchEditableImplAura()
rwhva_(NULL),
selection_gesture_in_process_(false),
handles_hidden_due_to_scroll_(false),
- scrolls_in_progress_(0),
+ scroll_in_progress_(false),
+ overscroll_in_progress_(false),
textfield_was_focused_on_tap_(false) {
}
-void TouchEditableImplAura::ScrollEnded() {
- scrolls_in_progress_--;
+void TouchEditableImplAura::StartTouchEditingIfNecessary() {
// If there is no scrolling left in progress, show selection handles if they
// were hidden due to scroll and there is a selection.
- if (!scrolls_in_progress_ && handles_hidden_due_to_scroll_ &&
+ if (!scroll_in_progress_ && !overscroll_in_progress_ &&
+ handles_hidden_due_to_scroll_ &&
(selection_anchor_ != selection_focus_ ||
text_input_type_ != ui::TEXT_INPUT_TYPE_NONE)) {
StartTouchEditing();
@@ -374,7 +378,8 @@ void TouchEditableImplAura::Cleanup() {
EndTouchEditing(true);
selection_gesture_in_process_ = false;
handles_hidden_due_to_scroll_ = false;
- scrolls_in_progress_ = 0;
+ scroll_in_progress_ = false;
+ overscroll_in_progress_ = false;
}
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698