134680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 234680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 334680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)// found in the LICENSE file. 434680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) 534680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)#include "ash/wm/virtual_keyboard_container_layout_manager.h" 634680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) 734680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)#include "ash/shell_window_ids.h" 834680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)#include "ui/aura/window.h" 934680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)#include "ui/keyboard/keyboard_controller.h" 1034680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) 1134680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)namespace ash { 1234680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) 1334680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)//////////////////////////////////////////////////////////////////////////////// 1434680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)// VirtualKeyboardContainerLayoutManager, public: 1534680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) 1634680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)VirtualKeyboardContainerLayoutManager::VirtualKeyboardContainerLayoutManager( 1734680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) aura::Window* container) 1834680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) : SnapToPixelLayoutManager(container), 1934680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) parent_container_(container) {} 2034680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) 2134680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)VirtualKeyboardContainerLayoutManager::~VirtualKeyboardContainerLayoutManager() 2234680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles){ 2334680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)} 2434680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) 2534680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)//////////////////////////////////////////////////////////////////////////////// 2634680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)// VirtualKeyboardContainerLayoutManager, aura::LayoutManager implementation: 2734680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) 2834680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)void VirtualKeyboardContainerLayoutManager::OnWindowResized() { 2934680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) keyboard::KeyboardController* keyboard_controller = 3034680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) keyboard::KeyboardController::GetInstance(); 3134680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) if (!keyboard_controller) 3234680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) return; 3334680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) 3434680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) // The layout manager for the root window propagates a resize to its 3534680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) // immediate children and grandchildren, but stops there. The keyboard 3634680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) // container is three levels deep, and therefore needs to be explicitly 3734680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) // updated when its parent is resized. 3834680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) aura::Window* keyboard_container = 3934680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) keyboard_controller->GetContainerWindow(); 4034680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) if (keyboard_container) 4134680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) keyboard_container->SetBounds(parent_container_->bounds()); 4234680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)} 4334680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles) 4434680572440d7894ef8dafce81d8039ed80726a2Torne (Richard Coles)} // namespace ash 45