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

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

Issue 11415238: events: Allow retrieving the current event being dispatched from EventDispatcher. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 1 month 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
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_aura.h ('k') | ui/base/events/event_dispatcher.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1a37ff8ca16dda4a37b679b4e8f6c9671039dd6c..1651dd0b763910135cfc6077f7100321ad40fc5c 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -175,6 +175,19 @@ bool ShouldReleaseFrontSurface() {
return release_front_surface_allowed;
}
+bool PointerEventActivates(const ui::Event& event) {
+ if (event.type() == ui::ET_MOUSE_PRESSED)
+ return true;
+
+ if (event.type() == ui::ET_GESTURE_BEGIN) {
+ const ui::GestureEvent& gesture =
+ static_cast<const ui::GestureEvent&>(event);
+ return gesture.details().touch_points() == 1;
+ }
+
+ return false;
+}
+
} // namespace
// We have to implement the WindowObserver interface on a separate object
@@ -285,8 +298,7 @@ RenderWidgetHostViewAura::RenderWidgetHostViewAura(RenderWidgetHost* host)
paint_canvas_(NULL),
synthetic_move_sent_(false),
accelerated_compositing_state_changed_(false),
- can_lock_compositor_(YES),
- pointer_activate_(false) {
+ can_lock_compositor_(YES) {
host_->SetView(this);
window_observer_.reset(new WindowObserver(this));
window_->AddObserver(window_observer_.get());
@@ -1542,7 +1554,6 @@ ui::EventResult RenderWidgetHostViewAura::OnKeyEvent(ui::KeyEvent* event) {
ui::EventResult RenderWidgetHostViewAura::OnMouseEvent(ui::MouseEvent* event) {
TRACE_EVENT0("browser", "RenderWidgetHostViewAura::OnMouseEvent");
- pointer_activate_ = event->type() == ui::ET_MOUSE_PRESSED;
if (mouse_locked_) {
// Hide the cursor if someone else has shown it.
@@ -1685,11 +1696,10 @@ ui::EventResult RenderWidgetHostViewAura::OnGestureEvent(
if (popup_type_ == WebKit::WebPopupTypeNone && !is_fullscreen_)
delegate = RenderViewHost::From(host_)->GetDelegate();
- bool gesture_begin = event->type() == ui::ET_GESTURE_BEGIN &&
- event->details().touch_points() == 1;
- if (delegate && gesture_begin)
+ if (delegate && event->type() == ui::ET_GESTURE_BEGIN &&
+ event->details().touch_points() == 1) {
delegate->HandleGestureBegin();
- pointer_activate_ = gesture_begin;
+ }
WebKit::WebGestureEvent gesture = MakeWebGestureEvent(event);
if (event->type() == ui::ET_GESTURE_TAP_DOWN) {
@@ -1728,17 +1738,15 @@ ui::EventResult RenderWidgetHostViewAura::OnGestureEvent(
// RenderWidgetHostViewAura, aura::client::ActivationDelegate implementation:
bool RenderWidgetHostViewAura::ShouldActivate() const {
+ const ui::Event* event = window_->GetRootWindow()->current_event();
+ if (!event)
+ return true;
return is_fullscreen_;
}
void RenderWidgetHostViewAura::OnActivated() {
- // |pointer_activate_| will be true when we are activated as the result of
- // a valid input event.
- // TODO(sadrul): It would be nice if we could get the currently processed
- // event from the RootWindow's EventDispatcher, then we could
- // avoid this extra field and just check the type/details on
- // the current event here.
- if (pointer_activate_)
+ const ui::Event* event = window_->GetRootWindow()->current_event();
+ if (event && PointerEventActivates(*event))
host_->OnPointerEventActivate();
}
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_aura.h ('k') | ui/base/events/event_dispatcher.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698