7#include <qpa/qplatformdrag.h>
8#include <private/qsimpledrag_p.h>
19#include <QtCore/QDebug>
44 void move(
const QPoint &globalPos, Qt::MouseButtons
b, Qt::KeyboardModifiers mods)
override;
45 void drop(
const QPoint &globalPos, Qt::MouseButtons
b, Qt::KeyboardModifiers mods)
override;
56 Qt::MouseButtons
b = { }, Qt::KeyboardModifiers mods = { });
79 Qt::MouseButtons
b = { }, Qt::KeyboardModifiers mods = { });
80 void handle_xdnd_status(
const xcb_client_message_event_t *
event);
87 void readActionList();
88 void setActionList(
Qt::DropAction requestedAction, Qt::DropActions supportedActions);
89 void startListeningForActionListChanges();
90 void stopListeningForActionListChanges();
101 xcb_atom_t xdnd_dragsource;
104 enum { xdnd_max_type = 100 };
108 xcb_timestamp_t target_time;
109 xcb_timestamp_t source_time;
112 QRect source_sameanswer;
113 bool waiting_for_status;
120 xcb_window_t xdndCollectionWindow = XCB_NONE;
123 xcb_window_t current_target;
125 xcb_window_t current_proxy_target;
130 static constexpr std::chrono::minutes XdndDropTransactionTimeout{10};
140 xcb_timestamp_t timestamp;
142 xcb_window_t proxy_target;
151 int transaction_expiry_timer;
152 void restartDropExpiryTimer();
153 int findTransactionByWindow(xcb_window_t
window);
154 int findTransactionByTime(xcb_timestamp_t timestamp);
155 xcb_window_t findRealWindow(
const QPoint &
pos, xcb_window_t
w,
int md,
bool ignoreNonXdndAwareWindows);
QBasicDrag is a base class for implementing platform drag and drop.
\inmodule QtCore\reentrant
\inmodule QtCore\reentrant
\inmodule QtCore \reentrant
void move(const QPoint &globalPos, Qt::MouseButtons b, Qt::KeyboardModifiers mods) override
Qt::DropAction defaultAction(Qt::DropActions possibleActions, Qt::KeyboardModifiers modifiers) const override
void timerEvent(QTimerEvent *e) override
This event handler can be reimplemented in a subclass to receive timer events for the object.
bool findXdndAwareTarget(const QPoint &globalPos, xcb_window_t *target_out)
xcb_timestamp_t targetTime()
void handleEnter(QPlatformWindow *window, const xcb_client_message_event_t *event, xcb_window_t proxy=0)
void drop(const QPoint &globalPos, Qt::MouseButtons b, Qt::KeyboardModifiers mods) override
void handleStatus(const xcb_client_message_event_t *event)
void handleDrop(QPlatformWindow *, const xcb_client_message_event_t *event, Qt::MouseButtons b={ }, Qt::KeyboardModifiers mods={ })
void handleFinished(const xcb_client_message_event_t *event)
bool eventFilter(QObject *o, QEvent *e) override
Filters events if this object has been installed as an event filter for the watched object.
void handlePosition(QPlatformWindow *w, const xcb_client_message_event_t *event)
void startDrag() override
bool ownsDragObject() const override
Returns bool indicating whether QPlatformDrag takes ownership and therefore responsibility of deletin...
void handleLeave(QPlatformWindow *w, const xcb_client_message_event_t *event)
void handleSelectionRequest(const xcb_selection_request_event_t *event)
bool dndEnable(QXcbWindow *win, bool on)
void handlePropertyNotifyEvent(const xcb_property_notify_event_t *event) override
xcb_atom_t atom(QXcbAtom::Atom atom) const
EGLImageKHR int int EGLuint64KHR * modifiers
Combined button and popup list for selecting options.
GLboolean GLboolean GLboolean b
GLfloat GLfloat GLfloat w
[0]
GLboolean GLboolean GLboolean GLboolean a
[7]
#define QT_REQUIRE_CONFIG(feature)
static QT_BEGIN_NAMESPACE void init(QTextBoundaryFinder::BoundaryType type, QStringView str, QCharAttributes *attributes)
#define Q_DECLARE_TYPEINFO(TYPE, FLAGS)