#include "ui/views/widget/desktop_aura/desktop_window_tree_host_linux.h"
#include <list>
#include <memory>
#include <optional>
#include <string>
#include <vector>
#include "base/memory/raw_ptr.h"
#include "ui/aura/null_window_targeter.h"
#include "ui/aura/scoped_window_targeter.h"
#include "ui/aura/window.h"
#include "ui/aura/window_delegate.h"
#include "ui/base/ozone_buildflags.h"
#include "ui/color/color_id.h"
#include "ui/color/color_provider.h"
#include "ui/compositor/compositor.h"
#include "ui/display/display.h"
#include "ui/display/screen.h"
#include "ui/events/event.h"
#include "ui/linux/linux_ui.h"
#include "ui/platform_window/extensions/desk_extension.h"
#include "ui/platform_window/extensions/pinned_mode_extension.h"
#include "ui/platform_window/extensions/wayland_extension.h"
#include "ui/platform_window/extensions/x11_extension.h"
#include "ui/platform_window/platform_window.h"
#include "ui/platform_window/platform_window_init_properties.h"
#include "ui/platform_window/wm/wm_move_resize_handler.h"
#include "ui/views/views_delegate.h"
#include "ui/views/widget/widget.h"
#if BUILDFLAG(USE_ATK)
#include "ui/accessibility/platform/atk_util_auralinux.h"
#endif
#include "ui/views/widget/desktop_aura/window_event_filter_linux.h"
namespace views {
namespace {
class SwapWithNewSizeObserverHelper : public ui::CompositorObserver { … };
}
const char DesktopWindowTreeHostLinux::kWindowKey[] = …;
DesktopWindowTreeHostLinux::DesktopWindowTreeHostLinux(
internal::NativeWidgetDelegate* native_widget_delegate,
DesktopNativeWidgetAura* desktop_native_widget_aura)
: … { … }
DesktopWindowTreeHostLinux::~DesktopWindowTreeHostLinux() = default;
gfx::Rect DesktopWindowTreeHostLinux::GetXRootWindowOuterBounds() const { … }
void DesktopWindowTreeHostLinux::LowerWindow() { … }
base::OnceClosure DesktopWindowTreeHostLinux::DisableEventListening() { … }
void DesktopWindowTreeHostLinux::UpdateFrameHints() { … }
void DesktopWindowTreeHostLinux::Init(const Widget::InitParams& params) { … }
void DesktopWindowTreeHostLinux::OnNativeWidgetCreated(
const Widget::InitParams& params) { … }
void DesktopWindowTreeHostLinux::InitModalType(
ui::mojom::ModalType modal_type) { … }
Widget::MoveLoopResult DesktopWindowTreeHostLinux::RunMoveLoop(
const gfx::Vector2d& drag_offset,
Widget::MoveLoopSource source,
Widget::MoveLoopEscapeBehavior escape_behavior) { … }
void DesktopWindowTreeHostLinux::DispatchEvent(ui::Event* event) { … }
void DesktopWindowTreeHostLinux::OnClosed() { … }
void DesktopWindowTreeHostLinux::OnBoundsChanged(const BoundsChange& change) { … }
ui::X11Extension* DesktopWindowTreeHostLinux::GetX11Extension() { … }
const ui::X11Extension* DesktopWindowTreeHostLinux::GetX11Extension() const { … }
#if BUILDFLAG(USE_ATK)
bool DesktopWindowTreeHostLinux::OnAtkKeyEvent(AtkKeyEventStruct* atk_event,
bool transient) { … }
#endif
bool DesktopWindowTreeHostLinux::IsOverrideRedirect() const { … }
gfx::Rect DesktopWindowTreeHostLinux::GetGuessedFullScreenSizeInPx() const { … }
void DesktopWindowTreeHostLinux::AddAdditionalInitProperties(
const Widget::InitParams& params,
ui::PlatformWindowInitProperties* properties) { … }
base::flat_map<std::string, std::string>
DesktopWindowTreeHostLinux::GetKeyboardLayoutMap() { … }
void DesktopWindowTreeHostLinux::OnCompleteSwapWithNewSize(
const gfx::Size& size) { … }
void DesktopWindowTreeHostLinux::CreateNonClientEventFilter() { … }
void DesktopWindowTreeHostLinux::DestroyNonClientEventFilter() { … }
void DesktopWindowTreeHostLinux::OnLostMouseGrab() { … }
void DesktopWindowTreeHostLinux::EnableEventListening() { … }
DesktopWindowTreeHost* DesktopWindowTreeHost::Create(
internal::NativeWidgetDelegate* native_widget_delegate,
DesktopNativeWidgetAura* desktop_native_widget_aura) { … }
}