#include "ui/views/widget/window_reorderer.h"
#include <stddef.h>
#include <algorithm>
#include <map>
#include <set>
#include <vector>
#include "base/containers/adapters.h"
#include "base/debug/crash_logging.h"
#include "base/memory/raw_ptr.h"
#include "ui/aura/window.h"
#include "ui/aura/window_occlusion_tracker.h"
#include "ui/compositor/layer.h"
#include "ui/views/view.h"
#include "ui/views/view_constants_aura.h"
namespace views {
namespace {
void GetViewsWithAssociatedWindow(
const aura::Window& parent_window,
std::map<views::View*, aura::Window*>* hosted_windows) { … }
void GetOrderOfViewsWithLayers(
views::View* view,
ui::Layer* parent_layer,
const std::map<views::View*, aura::Window*>& hosts,
std::vector<views::View*>* order) { … }
}
class WindowReorderer::AssociationObserver : public aura::WindowObserver { … };
WindowReorderer::AssociationObserver::AssociationObserver(
WindowReorderer* reorderer)
: … { … }
WindowReorderer::AssociationObserver::~AssociationObserver() { … }
void WindowReorderer::AssociationObserver::StartObserving(
aura::Window* window) { … }
void WindowReorderer::AssociationObserver::StopObserving(aura::Window* window) { … }
void WindowReorderer::AssociationObserver::OnWindowPropertyChanged(
aura::Window* window,
const void* key,
intptr_t old) { … }
void WindowReorderer::AssociationObserver::OnWindowDestroying(
aura::Window* window) { … }
WindowReorderer::WindowReorderer(aura::Window* parent_window, View* root_view)
: … { … }
WindowReorderer::~WindowReorderer() = default;
void WindowReorderer::ReorderChildWindows() { … }
void WindowReorderer::OnWindowAdded(aura::Window* new_window) { … }
void WindowReorderer::OnWillRemoveWindow(aura::Window* window) { … }
void WindowReorderer::OnWindowDestroying(aura::Window* window) { … }
void WindowReorderer::OnViewIsDeleting(View* observed_view) { … }
}