#include "ui/gfx/x/window_cache.h"
#include <vector>
#include "base/containers/adapters.h"
#include "base/containers/contains.h"
#include "base/functional/bind.h"
#include "base/notreached.h"
#include "base/ranges/algorithm.h"
#include "base/run_loop.h"
#include "base/task/single_thread_task_runner.h"
#include "base/time/time.h"
#include "ui/gfx/geometry/insets.h"
#include "ui/gfx/geometry/rect.h"
#include "ui/gfx/geometry/vector2d.h"
#include "ui/gfx/x/atom_cache.h"
#include "ui/gfx/x/connection.h"
#include "ui/gfx/x/event.h"
#include "ui/gfx/x/xproto.h"
namespace x11 {
const base::TimeDelta kDestroyTimerInterval = …;
Window GetWindowAtPoint(const gfx::Point& point_px,
const base::flat_set<Window>* ignore) { … }
ScopedShapeEventSelector::ScopedShapeEventSelector(Connection* connection,
Window window)
: … { … }
ScopedShapeEventSelector::~ScopedShapeEventSelector() { … }
WindowCache::WindowInfo::WindowInfo() = default;
WindowCache::WindowInfo::~WindowInfo() = default;
WindowCache* WindowCache::instance_ = …;
WindowCache::WindowCache(Connection* connection, Window root)
: … { … }
WindowCache::~WindowCache() { … }
void WindowCache::WaitUntilReady() { … }
void WindowCache::BeginDestroyTimer(std::unique_ptr<WindowCache> self) { … }
void WindowCache::SyncForTest() { … }
Window WindowCache::GetWindowAtPoint(gfx::Point point_px,
Window window,
const base::flat_set<Window>* ignore) { … }
void WindowCache::OnEvent(const Event& event) { … }
void WindowCache::AddWindow(Window window, Window parent) { … }
WindowCache::WindowInfo* WindowCache::GetInfo(Window window) { … }
std::vector<Window>* WindowCache::GetChildren(Window window) { … }
void WindowCache::GetProperty(Window window, Atom property, uint32_t length) { … }
WindowCache::WindowInfo* WindowCache::OnResponse(Window window,
bool has_reply) { … }
void WindowCache::OnGetWindowAttributesResponse(
Window window,
GetWindowAttributesResponse response) { … }
void WindowCache::OnGetGeometryResponse(Window window,
GetGeometryResponse response) { … }
void WindowCache::OnQueryTreeResponse(Window window,
QueryTreeResponse response) { … }
void WindowCache::OnGetPropertyResponse(Window window,
Atom atom,
GetPropertyResponse response) { … }
void WindowCache::OnGetRectanglesResponse(
Window window,
Shape::Sk kind,
Shape::GetRectanglesResponse response) { … }
void WindowCache::OnDestroyTimerExpired(std::unique_ptr<WindowCache> self) { … }
}