diff options
Diffstat (limited to 'ui/aura/root_window.cc')
-rw-r--r-- | ui/aura/root_window.cc | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/ui/aura/root_window.cc b/ui/aura/root_window.cc index 8e96cba..aba54cb 100644 --- a/ui/aura/root_window.cc +++ b/ui/aura/root_window.cc @@ -747,7 +747,18 @@ void RootWindow::OnWindowHidden(Window* invisible, bool destroyed) { mouse_event_dispatch_target_ = NULL; if (invisible->Contains(event_dispatch_target_)) event_dispatch_target_ = NULL; - gesture_recognizer_->FlushTouchQueue(invisible); + + CleanupGestureRecognizerState(invisible); +} + +void RootWindow::CleanupGestureRecognizerState(Window* window) { + gesture_recognizer_->FlushTouchQueue(window); + Windows windows = window->children(); + for (Windows::const_iterator iter = windows.begin(); + iter != windows.end(); + ++iter) { + CleanupGestureRecognizerState(*iter); + } } void RootWindow::OnWindowAddedToRootWindow(Window* attached) { |