| Index: ash/wm/event_client_impl.cc
|
| diff --git a/ash/wm/event_client_impl.cc b/ash/wm/event_client_impl.cc
|
| index fcdc1b425d382c948e31b0135fff8e61d105c5ee..6a7a02a945b0f57a1bd00bcc5c6d19535e153dce 100644
|
| --- a/ash/wm/event_client_impl.cc
|
| +++ b/ash/wm/event_client_impl.cc
|
| @@ -8,6 +8,7 @@
|
| #include "ash/shell.h"
|
| #include "ash/shell_window_ids.h"
|
| #include "ui/aura/window.h"
|
| +#include "ui/keyboard/keyboard_util.h"
|
|
|
| namespace ash {
|
| namespace internal {
|
| @@ -33,12 +34,20 @@ bool EventClientImpl::CanProcessEventsWithinSubtree(
|
| const aura::Window* lock_screen_related_containers = Shell::GetContainer(
|
| root_window,
|
| kShellWindowId_LockScreenRelatedContainersContainer);
|
| - return (window->Contains(lock_screen_containers) &&
|
| + bool can_process_events = (window->Contains(lock_screen_containers) &&
|
| window->Contains(lock_background_containers) &&
|
| window->Contains(lock_screen_related_containers)) ||
|
| lock_screen_containers->Contains(window) ||
|
| lock_background_containers->Contains(window) ||
|
| lock_screen_related_containers->Contains(window);
|
| + if (keyboard::IsKeyboardEnabled()) {
|
| + const aura::Window* virtual_keyboard_container = Shell::GetContainer(
|
| + root_window,
|
| + kShellWindowId_VirtualKeyboardContainer);
|
| + can_process_events |= (window->Contains(virtual_keyboard_container) ||
|
| + virtual_keyboard_container->Contains(window));
|
| + }
|
| + return can_process_events;
|
| }
|
| return true;
|
| }
|
|
|