Index: ui/aura/shared/compound_event_filter.cc |
diff --git a/ui/aura/shared/compound_event_filter.cc b/ui/aura/shared/compound_event_filter.cc |
index 4bc8866eb8e99934dd2eb86f9bbb6a819142bc5d..85cff86fe141c3e6c7ca7d316cc2fc42aac35ebc 100644 |
--- a/ui/aura/shared/compound_event_filter.cc |
+++ b/ui/aura/shared/compound_event_filter.cc |
@@ -103,7 +103,7 @@ bool CompoundEventFilter::PreHandleMouseEvent(aura::Window* target, |
if (event->type() == ui::ET_MOUSE_MOVED || |
event->type() == ui::ET_MOUSE_PRESSED || |
event->type() == ui::ET_MOUSEWHEEL) { |
- SetVisibilityOnEvent(target, event, true); |
+ SetCursorVisibilityOnEvent(target, event, true); |
UpdateCursor(target, event); |
} |
@@ -125,7 +125,12 @@ bool CompoundEventFilter::PreHandleMouseEvent(aura::Window* target, |
ui::TouchStatus CompoundEventFilter::PreHandleTouchEvent( |
aura::Window* target, |
aura::TouchEvent* event) { |
- return FilterTouchEvent(target, event); |
+ ui::TouchStatus status = FilterTouchEvent(target, event); |
+ if (status == ui::TOUCH_STATUS_UNKNOWN && |
+ event->type() == ui::ET_TOUCH_PRESSED) { |
+ SetCursorVisibilityOnEvent(target, event, false); |
+ } |
+ return status; |
} |
ui::GestureStatus CompoundEventFilter::PreHandleGestureEvent( |
@@ -145,7 +150,6 @@ ui::GestureStatus CompoundEventFilter::PreHandleGestureEvent( |
event->details().touch_points() == 1 && |
target->GetRootWindow() && |
GetActiveWindow(target) != target) { |
- SetVisibilityOnEvent(target, event, false); |
target->GetFocusManager()->SetFocusedWindow( |
FindFocusableWindowFor(target), event); |
} |
@@ -211,9 +215,9 @@ ui::TouchStatus CompoundEventFilter::FilterTouchEvent( |
return status; |
} |
-void CompoundEventFilter::SetVisibilityOnEvent(aura::Window* target, |
- aura::LocatedEvent* event, |
- bool show) { |
+void CompoundEventFilter::SetCursorVisibilityOnEvent(aura::Window* target, |
+ aura::LocatedEvent* event, |
+ bool show) { |
if (update_cursor_visibility_ && !(event->flags() & ui::EF_IS_SYNTHESIZED)) { |
aura::client::CursorClient* client = |
aura::client::GetCursorClient(target->GetRootWindow()); |