blob: aae3ec8fbf86e689877058a1b5848fbfd6ef2e52 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ash/wm/virtual_keyboard_container_layout_manager.h"
#include "ash/shell_window_ids.h"
#include "ui/aura/window.h"
#include "ui/keyboard/keyboard_controller.h"
namespace ash {
////////////////////////////////////////////////////////////////////////////////
// VirtualKeyboardContainerLayoutManager, public:
VirtualKeyboardContainerLayoutManager::VirtualKeyboardContainerLayoutManager(
aura::Window* container)
: SnapToPixelLayoutManager(container),
parent_container_(container) {}
VirtualKeyboardContainerLayoutManager::~VirtualKeyboardContainerLayoutManager()
{
}
////////////////////////////////////////////////////////////////////////////////
// VirtualKeyboardContainerLayoutManager, aura::LayoutManager implementation:
void VirtualKeyboardContainerLayoutManager::OnWindowResized() {
keyboard::KeyboardController* keyboard_controller =
keyboard::KeyboardController::GetInstance();
if (!keyboard_controller)
return;
// The layout manager for the root window propagates a resize to its
// immediate children and grandchildren, but stops there. The keyboard
// container is three levels deep, and therefore needs to be explicitly
// updated when its parent is resized.
aura::Window* keyboard_container =
keyboard_controller->GetContainerWindow();
if (keyboard_container)
keyboard_container->SetBounds(parent_container_->bounds());
}
} // namespace ash