blob: 8d41fdee4c68f5c2c35855cd0ecb23f008a6035a [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/wm_snap_to_pixel_layout_manager.h"
#include "ash/public/cpp/shell_window_ids.h"
#include "ui/aura/client/aura_constants.h"
#include "ui/aura/window.h"
#include "ui/wm/core/window_properties.h"
#include "ui/wm/core/window_util.h"
namespace ash {
namespace wm {
WmSnapToPixelLayoutManager::WmSnapToPixelLayoutManager() = default;
WmSnapToPixelLayoutManager::~WmSnapToPixelLayoutManager() = default;
// static
void WmSnapToPixelLayoutManager::InstallOnContainers(aura::Window* window) {
for (aura::Window* child : window->children()) {
if (child->id() < kShellWindowId_MinContainer ||
child->id() > kShellWindowId_MaxContainer) // not a container
continue;
if (child->GetProperty(::wm::kSnapChildrenToPixelBoundary)) {
if (!child->layout_manager())
child->SetLayoutManager(new WmSnapToPixelLayoutManager());
} else {
InstallOnContainers(child);
}
}
}
void WmSnapToPixelLayoutManager::OnWindowResized() {}
void WmSnapToPixelLayoutManager::OnWindowAddedToLayout(aura::Window* child) {}
void WmSnapToPixelLayoutManager::OnWillRemoveWindowFromLayout(
aura::Window* child) {}
void WmSnapToPixelLayoutManager::OnWindowRemovedFromLayout(
aura::Window* child) {}
void WmSnapToPixelLayoutManager::OnChildWindowVisibilityChanged(
aura::Window* child,
bool visible) {}
void WmSnapToPixelLayoutManager::SetChildBounds(
aura::Window* child,
const gfx::Rect& requested_bounds) {
SetChildBoundsDirect(child, requested_bounds);
::wm::SnapWindowToPixelBoundary(child);
}
} // namespace wm
} // namespace ash