#include "ui/base/x/x11_drag_context.h"
#include "base/logging.h"
#include "base/memory/ref_counted_memory.h"
#include "ui/base/dragdrop/drag_drop_types.h"
#include "ui/base/x/x11_drag_drop_client.h"
#include "ui/base/x/x11_util.h"
#include "ui/events/platform/platform_event_source.h"
#include "ui/gfx/x/atom_cache.h"
#include "ui/gfx/x/connection.h"
#include "ui/gfx/x/xproto.h"
namespace ui {
namespace {
const char kXdndTypeList[] = …;
const char kXdndSelection[] = …;
const char kXdndActionList[] = …;
const char kXdndActionCopy[] = …;
const char kXdndActionMove[] = …;
const char kXdndActionLink[] = …;
const char kChromiumDragReciever[] = …;
}
XDragContext::XDragContext(x11::Window local_window,
const x11::ClientMessageEvent& event,
const SelectionFormatMap& data)
: … { … }
XDragContext::~XDragContext() = default;
void XDragContext::OnXdndPositionMessage(XDragDropClient* client,
x11::Atom suggested_action,
x11::Window source_window,
x11::Time time_stamp,
const gfx::Point& screen_point) { … }
void XDragContext::RequestNextTarget() { … }
void XDragContext::OnSelectionNotify(const x11::SelectionNotifyEvent& event) { … }
void XDragContext::ReadActions() { … }
int XDragContext::GetDragOperation() const { … }
void XDragContext::MaskOperation(x11::Atom xdnd_operation,
int* drag_operation) const { … }
bool XDragContext::DispatchPropertyNotifyEvent(
const x11::PropertyNotifyEvent& prop) { … }
}