#include "ui/ozone/platform/wayland/host/shell_popup_wrapper.h"
#include <optional>
#include "base/check_op.h"
#include "base/command_line.h"
#include "base/debug/stack_trace.h"
#include "base/environment.h"
#include "base/logging.h"
#include "base/nix/xdg_util.h"
#include "base/notreached.h"
#include "build/chromeos_buildflags.h"
#include "ui/base/owned_window_anchor.h"
#include "ui/ozone/platform/wayland/common/wayland_util.h"
#include "ui/ozone/platform/wayland/host/wayland_connection.h"
#include "ui/ozone/platform/wayland/host/wayland_popup.h"
#include "ui/ozone/platform/wayland/host/wayland_serial_tracker.h"
#include "ui/ozone/platform/wayland/host/wayland_toplevel_window.h"
#include "ui/ozone/platform/wayland/host/wayland_window.h"
#include "ui/ozone/public/ozone_switches.h"
#include "ui/platform_window/platform_window_init_properties.h"
namespace ui {
namespace {
#if !BUILDFLAG(IS_CHROMEOS_LACROS)
bool IsGnomeShell() { … }
#endif
}
ShellPopupParams::ShellPopupParams() = default;
ShellPopupParams::ShellPopupParams(const ShellPopupParams&) = default;
ShellPopupParams& ShellPopupParams::operator=(const ShellPopupParams&) =
default;
ShellPopupParams::~ShellPopupParams() = default;
void ShellPopupWrapper::FillAnchorData(
const ShellPopupParams& params,
gfx::Rect* anchor_rect,
OwnedWindowAnchorPosition* anchor_position,
OwnedWindowAnchorGravity* anchor_gravity,
OwnedWindowConstraintAdjustment* constraints) const { … }
XDGPopupWrapperImpl* ShellPopupWrapper::AsXDGPopupWrapper() { … }
void ShellPopupWrapper::GrabIfPossible(
WaylandConnection* connection,
std::optional<bool> parent_shell_popup_has_grab) { … }
}