Index: components/exo/pointer.cc |
diff --git a/components/exo/pointer.cc b/components/exo/pointer.cc |
index a1778eb34cb1220669661032e29b3b587a0a0cc3..092501a46248c805c0403528c72492abcd7e9d73 100644 |
--- a/components/exo/pointer.cc |
+++ b/components/exo/pointer.cc |
@@ -119,7 +119,7 @@ void Pointer::SetCursor(Surface* surface, const gfx::Point& hotspot) { |
if (!cursor_changed) |
return; |
- // If |surface_| is set then ascynchrounsly capture a snapshot of cursor, |
+ // If |surface_| is set then asynchronously capture a snapshot of cursor, |
// otherwise cancel pending capture and immediately set the cursor to "none". |
if (surface_) { |
CaptureCursor(); |
@@ -166,7 +166,10 @@ void Pointer::OnMouseEvent(ui::MouseEvent* event) { |
delegate_->OnPointerFrame(); |
} |
- if (focus_ && event->IsMouseEvent() && event->type() != ui::ET_MOUSE_EXITED) { |
+ if (!focus_) |
+ return; |
+ |
+ if (event->IsMouseEvent() && event->type() != ui::ET_MOUSE_EXITED) { |
// Generate motion event if location changed. We need to check location |
// here as mouse movement can generate both "moved" and "entered" events |
// but OnPointerMotion should only be called if location changed since |
@@ -180,44 +183,39 @@ void Pointer::OnMouseEvent(ui::MouseEvent* event) { |
switch (event->type()) { |
case ui::ET_MOUSE_PRESSED: |
- case ui::ET_MOUSE_RELEASED: |
- if (focus_) { |
- delegate_->OnPointerButton(event->time_stamp(), |
- event->changed_button_flags(), |
- event->type() == ui::ET_MOUSE_PRESSED); |
- delegate_->OnPointerFrame(); |
- } |
+ case ui::ET_MOUSE_RELEASED: { |
+ delegate_->OnPointerButton(event->time_stamp(), |
+ event->changed_button_flags(), |
+ event->type() == ui::ET_MOUSE_PRESSED); |
+ delegate_->OnPointerFrame(); |
break; |
- case ui::ET_SCROLL: |
- if (focus_) { |
- ui::ScrollEvent* scroll_event = static_cast<ui::ScrollEvent*>(event); |
- delegate_->OnPointerScroll( |
- event->time_stamp(), |
- gfx::Vector2dF(scroll_event->x_offset(), scroll_event->y_offset()), |
- false); |
- delegate_->OnPointerFrame(); |
- } |
+ } |
+ case ui::ET_SCROLL: { |
+ ui::ScrollEvent* scroll_event = static_cast<ui::ScrollEvent*>(event); |
+ delegate_->OnPointerScroll( |
+ event->time_stamp(), |
+ gfx::Vector2dF(scroll_event->x_offset(), scroll_event->y_offset()), |
+ false); |
+ delegate_->OnPointerFrame(); |
break; |
- case ui::ET_MOUSEWHEEL: |
- if (focus_) { |
- delegate_->OnPointerScroll( |
- event->time_stamp(), |
- static_cast<ui::MouseWheelEvent*>(event)->offset(), true); |
- delegate_->OnPointerFrame(); |
- } |
+ } |
+ case ui::ET_MOUSEWHEEL: { |
+ delegate_->OnPointerScroll( |
+ event->time_stamp(), |
+ static_cast<ui::MouseWheelEvent*>(event)->offset(), true); |
+ delegate_->OnPointerFrame(); |
break; |
- case ui::ET_SCROLL_FLING_START: |
- if (focus_) { |
- delegate_->OnPointerScrollStop(event->time_stamp()); |
- delegate_->OnPointerFrame(); |
- } |
+ } |
+ case ui::ET_SCROLL_FLING_START: { |
+ delegate_->OnPointerScrollStop(event->time_stamp()); |
+ delegate_->OnPointerFrame(); |
break; |
- case ui::ET_SCROLL_FLING_CANCEL: |
- if (focus_) { |
- delegate_->OnPointerScrollCancel(event->time_stamp()); |
- delegate_->OnPointerFrame(); |
- } |
+ } |
+ case ui::ET_SCROLL_FLING_CANCEL: { |
+ delegate_->OnPointerScrollCancel(event->time_stamp()); |
+ delegate_->OnPointerFrame(); |
break; |
+ } |
case ui::ET_MOUSE_MOVED: |
case ui::ET_MOUSE_DRAGGED: |
case ui::ET_MOUSE_ENTERED: |
@@ -229,14 +227,16 @@ void Pointer::OnMouseEvent(ui::MouseEvent* event) { |
break; |
} |
- if (focus_) |
- UpdateCursorScale(); |
+ UpdateCursorScale(); |
} |
void Pointer::OnScrollEvent(ui::ScrollEvent* event) { |
OnMouseEvent(event); |
} |
+//////////////////////////////////////////////////////////////////////////////// |
+// WMHelper::CursorObserver overrides: |
+ |
void Pointer::OnCursorSetChanged(ui::CursorSetType cursor_set) { |
if (focus_) |
UpdateCursorScale(); |
@@ -321,6 +321,7 @@ void Pointer::UpdateCursorScale() { |
void Pointer::CaptureCursor() { |
DCHECK(surface_); |
+ DCHECK(focus_); |
// Set UI scale before submitting capture request. |
surface_->window()->layer()->SetTransform( |