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

Unified Diff: content/browser/renderer_host/render_widget_host_view_aura.cc

Issue 11188012: gesture recognizer: Remove the touch-event queue. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: tot-merge Created 8 years, 2 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/renderer_host/render_widget_host_view_aura.cc
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index 38104ac2e756e175a529b1f8768224293f6895cf..851630c58ab60b7aad1b040b6bb76739871bb5e4 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -15,6 +15,7 @@
#include "content/browser/renderer_host/dip_util.h"
#include "content/browser/renderer_host/render_view_host_delegate.h"
#include "content/browser/renderer_host/render_widget_host_impl.h"
+#include "content/browser/renderer_host/ui_events_helper.h"
#include "content/browser/renderer_host/web_input_event_aura.h"
#include "content/common/gpu/client/gl_helper.h"
#include "content/common/gpu/gpu_messages.h"
@@ -1009,11 +1010,16 @@ gfx::Rect RenderWidgetHostViewAura::GetBoundsInRootWindow() {
void RenderWidgetHostViewAura::ProcessAckedTouchEvent(
const WebKit::WebTouchEvent& touch_event,
bool processed) {
- // The ACKs for the touch-events arrive in the same sequence as they were
- // dispatched.
- aura::RootWindow* root_window = window_->GetRootWindow();
- if (root_window)
- root_window->AdvanceQueuedTouchEvent(window_, processed);
+ ScopedVector<ui::TouchEvent> events;
+ if (!MakeUITouchEventsFromWebTouchEvents(touch_event, &events))
+ return;
+
+ aura::RootWindow* root = window_->GetRootWindow();
+ ui::EventResult result = processed ? ui::ER_HANDLED : ui::ER_UNHANDLED;
+ for (ScopedVector<ui::TouchEvent>::iterator iter = events.begin(),
+ end = events.end(); iter != end; ++iter) {
+ root->ProcessedTouchEvent((*iter), window_, result);
+ }
}
void RenderWidgetHostViewAura::SetHasHorizontalScrollbar(
@@ -1549,11 +1555,11 @@ ui::EventResult RenderWidgetHostViewAura::OnTouchEvent(ui::TouchEvent* event) {
&touch_event_);
// Forward the touch event only if a touch point was updated, and there's a
- // touch-event handler in the page.
- if (point && host_->has_touch_handler()) {
+ // touch-event handler in the page, and no other touch-event is in the queue.
+ if (point && host_->ShouldForwardTouchEvent()) {
host_->ForwardTouchEvent(touch_event_);
UpdateWebTouchEventAfterDispatch(&touch_event_, point);
- return ui::ER_ASYNC;
+ return ui::ER_CONSUMED;
}
return ui::ER_UNHANDLED;

Powered by Google App Engine
This is Rietveld 408576698