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; |
} |