blob: 8753f62f3e473145ace55499633a925d4cd3b20f [file] [log] [blame]
// Copyright (c) 2012 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/common/wm/root_window_finder.h"
#include "ash/common/wm_lookup.h"
#include "ash/common/wm_root_window_controller.h"
#include "ash/common/wm_window.h"
#include "ui/display/display.h"
#include "ui/display/screen.h"
#include "ui/gfx/geometry/point.h"
#include "ui/gfx/geometry/rect.h"
namespace ash {
namespace wm {
WmWindow* GetRootWindowAt(const gfx::Point& point) {
const display::Display& display =
display::Screen::GetScreen()->GetDisplayNearestPoint(point);
DCHECK(display.is_valid());
WmRootWindowController* root_window_controller =
WmLookup::Get()->GetRootWindowControllerWithDisplayId(display.id());
return root_window_controller ? root_window_controller->GetWindow() : nullptr;
}
WmWindow* GetRootWindowMatching(const gfx::Rect& rect) {
const display::Display& display =
display::Screen::GetScreen()->GetDisplayMatching(rect);
WmRootWindowController* root_window_controller =
WmLookup::Get()->GetRootWindowControllerWithDisplayId(display.id());
return root_window_controller ? root_window_controller->GetWindow() : nullptr;
}
} // namespace wm
} // namespace ash