Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qwindowsysteminterface.cpp File Reference

(b6ef5cf17036b418827b804fb49eaee20ba83beb)

#include "qwindowsysteminterface.h"
#include <qpa/qplatformwindow.h>
#include "qwindowsysteminterface_p.h"
#include "private/qguiapplication_p.h"
#include "private/qevent_p.h"
#include "private/qeventpoint_p.h"
#include "private/qpointingdevice_p.h"
#include "private/qscreen_p.h"
#include <QAbstractEventDispatcher>
#include <qpa/qplatformintegration.h>
#include <qdebug.h>
#include "qhighdpiscaling_p.h"
#include <QtCore/qscopedvaluerollback.h>
#include <QtCore/private/qlocking_p.h>
Include dependency graph for qwindowsysteminterface.cpp:

Go to the source code of this file.

Classes

struct  QWindowSystemHelper< Delivery >

Namespaces

namespace  QTest
 [15]

Macros

#define QT_DEFINE_QPA_EVENT_HANDLER(ReturnType, HandlerName, ...)

Functions

template<typename EventType, typename Delivery = QWindowSystemInterface::DefaultDelivery, typename ... Args>
static bool handleWindowSystemEvent (Args ...args)
 QT_DEFINE_QPA_EVENT_HANDLER (void, handleEnterEvent, QWindow *window, const QPointF &local, const QPointF &global)
 QT_DEFINE_QPA_EVENT_HANDLER (void, handleLeaveEvent, QWindow *window)
 QT_DEFINE_QPA_EVENT_HANDLER (void, handleFocusWindowChanged, QWindow *window, Qt::FocusReason rr)
 QT_DEFINE_QPA_EVENT_HANDLER (void, handleWindowStateChanged, QWindow *window, Qt::WindowStates newState, int oldState)
 QT_DEFINE_QPA_EVENT_HANDLER (void, handleWindowScreenChanged, QWindow *window, QScreen *screen)
 QT_DEFINE_QPA_EVENT_HANDLER (void, handleWindowDevicePixelRatioChanged, QWindow *window)
 QT_DEFINE_QPA_EVENT_HANDLER (void, handleSafeAreaMarginsChanged, QWindow *window)
 QT_DEFINE_QPA_EVENT_HANDLER (void, handleApplicationStateChanged, Qt::ApplicationState newState, bool forcePropagate)
 QT_DEFINE_QPA_EVENT_HANDLER (bool, handleApplicationTermination)
 QT_DEFINE_QPA_EVENT_HANDLER (void, handleGeometryChange, QWindow *window, const QRect &newRect)
 QT_DEFINE_QPA_EVENT_HANDLER (bool, handleExposeEvent, QWindow *window, const QRegion &region)
 QT_DEFINE_QPA_EVENT_HANDLER (bool, handlePaintEvent, QWindow *window, const QRegion &region)
 QT_DEFINE_QPA_EVENT_HANDLER (bool, handleCloseEvent, QWindow *window)
 QT_DEFINE_QPA_EVENT_HANDLER (bool, handleMouseEvent, QWindow *window, const QPointF &local, const QPointF &global, Qt::MouseButtons state, Qt::MouseButton button, QEvent::Type typetype, Qt::KeyboardModifiers mods, Qt::MouseEventSource sourcesource)
 w == 0 means that the event is in global coords only, local will be ignored in this case
 QT_DEFINE_QPA_EVENT_HANDLER (bool, handleMouseEvent, QWindow *window, const QPointingDevice *device, const QPointF &local, const QPointF &global, Qt::MouseButtons state, Qt::MouseButton button, QEvent::Type typetype, Qt::KeyboardModifiers mods, Qt::MouseEventSource sourcesource)
 QT_DEFINE_QPA_EVENT_HANDLER (bool, handleMouseEvent, QWindow *window, ulong timestamp, const QPointF &local, const QPointF &global, Qt::MouseButtons state, Qt::MouseButton button, QEvent::Type typetype, Qt::KeyboardModifiers mods, Qt::MouseEventSource sourcesource)
 QT_DEFINE_QPA_EVENT_HANDLER (bool, handleMouseEvent, QWindow *window, ulong timestamp, const QPointingDevice *device, const QPointF &local, const QPointF &global, Qt::MouseButtons state, Qt::MouseButton button, QEvent::Type typetype, Qt::KeyboardModifiers mods, Qt::MouseEventSource sourcesource)
 QT_DEFINE_QPA_EVENT_HANDLER (bool, handleKeyEvent, QWindow *window, QEvent::Type tt, int k, Qt::KeyboardModifiers mods, const QString &text, bool autorep, ushort countcount)
 QT_DEFINE_QPA_EVENT_HANDLER (bool, handleKeyEvent, QWindow *window, ulong timestamp, QEvent::Type tt, int k, Qt::KeyboardModifiers mods, const QString &text, bool autorep, ushort countcount)
 QT_DEFINE_QPA_EVENT_HANDLER (bool, handleTouchEvent, QWindow *window, const QPointingDevice *device, const QList< TouchPoint > &pointspoints, Qt::KeyboardModifiers mods)
 QT_DEFINE_QPA_EVENT_HANDLER (bool, handleTouchEvent, QWindow *window, ulong timestamp, const QPointingDevice *device, const QList< TouchPoint > &pointspoints, Qt::KeyboardModifiers mods)
 QT_DEFINE_QPA_EVENT_HANDLER (bool, handleTouchCancelEvent, QWindow *window, const QPointingDevice *device, Qt::KeyboardModifiers mods)
 QT_DEFINE_QPA_EVENT_HANDLER (bool, handleTouchCancelEvent, QWindow *window, ulong timestamp, const QPointingDevice *device, Qt::KeyboardModifiers mods)
 QT_DEFINE_QPA_EVENT_HANDLER (void, handleThemeChange)
 QT_DEFINE_QPA_EVENT_HANDLER (bool, handleContextMenuEvent, QWindow *window, bool mouseTriggered, const QPoint &pos, const QPoint &globalPos, Qt::KeyboardModifiers modifiersmodifiers)
Q_GUI_EXPORT QDebug operator<< (QDebug dbg, const QWindowSystemInterface::TouchPoint &pp)
Q_GUI_EXPORT void qt_handleMouseEvent (QWindow *window, const QPointF &local, const QPointF &global, Qt::MouseButtons state, Qt::MouseButton button, QEvent::Type typetype, Qt::KeyboardModifiers mods, int timestamp)
Q_GUI_EXPORT void qt_handleKeyEvent (QWindow *window, QEvent::Type tt, int k, Qt::KeyboardModifiers mods, const QString &text=QString(), bool autorep=false, ushort countcount=1)
Q_GUI_EXPORT bool qt_sendShortcutOverrideEvent (QObject *o, ulong timestamp, int k, Qt::KeyboardModifiers mods, const QString &text=QString(), bool autorep=false, ushort countcount=1)
Q_GUI_EXPORT void qt_handleWheelEvent (QWindow *window, const QPointF &local, const QPointF &global, QPoint pixelDelta, QPoint angleDelta, Qt::KeyboardModifiers mods, Qt::ScrollPhase phase)
Q_GUI_EXPORT QPointingDevice * QTest::createTouchDevice (QInputDevice::DeviceType devType=QInputDevice::DeviceType::TouchScreen, QInputDevice::Capabilities caps=QInputDevice::Capability::Position)
Q_GUI_EXPORT bool qt_handleTouchEventv2 (QWindow *window, const QPointingDevice *device, const QList< QEventPoint > &pointspoints, Qt::KeyboardModifiers mods)
Q_GUI_EXPORT void qt_handleTouchEvent (QWindow *window, const QPointingDevice *device, const QList< QEventPoint > &pointspoints, Qt::KeyboardModifiers mods)

Macro Definition Documentation

◆ QT_DEFINE_QPA_EVENT_HANDLER

#define QT_DEFINE_QPA_EVENT_HANDLER ( ReturnType,
HandlerName,
... )
Value:
template Q_GUI_EXPORT ReturnType QWindowSystemInterface::HandlerName<QWindowSystemInterface::DefaultDelivery>(__VA_ARGS__); \
template Q_GUI_EXPORT ReturnType QWindowSystemInterface::HandlerName<QWindowSystemInterface::SynchronousDelivery>(__VA_ARGS__); \
template Q_GUI_EXPORT ReturnType QWindowSystemInterface::HandlerName<QWindowSystemInterface::AsynchronousDelivery>(__VA_ARGS__); \
template<typename Delivery> ReturnType QWindowSystemInterface::HandlerName(__VA_ARGS__)

Definition at line 197 of file qwindowsysteminterface.cpp.

Function Documentation

◆ handleWindowSystemEvent()

template<typename EventType, typename Delivery = QWindowSystemInterface::DefaultDelivery, typename ... Args>
bool handleWindowSystemEvent ( Args ... args)
static

Definition at line 134 of file qwindowsysteminterface.cpp.

◆ operator<<()

Q_GUI_EXPORT QDebug operator<< ( QDebug dbg,
const QWindowSystemInterface::TouchPoint & p )

Definition at line 1044 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [1/25]

QT_DEFINE_QPA_EVENT_HANDLER ( bool ,
handleApplicationTermination  )

Definition at line 277 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [2/25]

QT_DEFINE_QPA_EVENT_HANDLER ( bool ,
handleCloseEvent ,
QWindow * window )

Definition at line 350 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [3/25]

QT_DEFINE_QPA_EVENT_HANDLER ( bool ,
handleContextMenuEvent ,
QWindow * window,
bool mouseTriggered,
const QPoint & pos,
const QPoint & globalPos,
Qt::KeyboardModifiers modifiers )

Definition at line 1026 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [4/25]

QT_DEFINE_QPA_EVENT_HANDLER ( bool ,
handleExposeEvent ,
QWindow * window,
const QRegion & region )

Handles an expose event.

The platform plugin sends expose events when an area of the window is invalidated or window exposure changes. region is in window local coordinates. An empty region indicates that the window is obscured, but note that the exposed property of the QWindow will be set based on what QPlatformWindow::isExposed() returns at the time of this call, not based on what the region is. // FIXME: this should probably be fixed.

The platform plugin may omit sending expose events (or send obscure events) for windows that are on screen but where the client area is completely covered by other windows or otherwise not visible. Expose event consumers can then use this to disable updates for such windows. This is required behavior on platforms where OpenGL swapbuffers stops blocking for obscured windows (like macOS).

Definition at line 337 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [5/25]

QT_DEFINE_QPA_EVENT_HANDLER ( bool ,
handleKeyEvent ,
QWindow * window,
QEvent::Type t,
int k,
Qt::KeyboardModifiers mods,
const QString & text,
bool autorep,
ushort count )

Definition at line 467 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [6/25]

QT_DEFINE_QPA_EVENT_HANDLER ( bool ,
handleKeyEvent ,
QWindow * window,
ulong timestamp,
QEvent::Type t,
int k,
Qt::KeyboardModifiers mods,
const QString & text,
bool autorep,
ushort count )

Definition at line 472 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [7/25]

QT_DEFINE_QPA_EVENT_HANDLER ( bool ,
handleMouseEvent ,
QWindow * window,
const QPointF & local,
const QPointF & global,
Qt::MouseButtons state,
Qt::MouseButton button,
QEvent::Type type,
Qt::KeyboardModifiers mods,
Qt::MouseEventSource source )

w == 0 means that the event is in global coords only, local will be ignored in this case

Definition at line 362 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [8/25]

QT_DEFINE_QPA_EVENT_HANDLER ( bool ,
handleMouseEvent ,
QWindow * window,
const QPointingDevice * device,
const QPointF & local,
const QPointF & global,
Qt::MouseButtons state,
Qt::MouseButton button,
QEvent::Type type,
Qt::KeyboardModifiers mods,
Qt::MouseEventSource source )

Definition at line 371 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [9/25]

QT_DEFINE_QPA_EVENT_HANDLER ( bool ,
handleMouseEvent ,
QWindow * window,
ulong timestamp,
const QPointF & local,
const QPointF & global,
Qt::MouseButtons state,
Qt::MouseButton button,
QEvent::Type type,
Qt::KeyboardModifiers mods,
Qt::MouseEventSource source )

Definition at line 380 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [10/25]

QT_DEFINE_QPA_EVENT_HANDLER ( bool ,
handleMouseEvent ,
QWindow * window,
ulong timestamp,
const QPointingDevice * device,
const QPointF & local,
const QPointF & global,
Qt::MouseButtons state,
Qt::MouseButton button,
QEvent::Type type,
Qt::KeyboardModifiers mods,
Qt::MouseEventSource source )

Definition at line 389 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [11/25]

QT_DEFINE_QPA_EVENT_HANDLER ( bool ,
handlePaintEvent ,
QWindow * window,
const QRegion & region )

Definition at line 343 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [12/25]

QT_DEFINE_QPA_EVENT_HANDLER ( bool ,
handleTouchCancelEvent ,
QWindow * window,
const QPointingDevice * device,
Qt::KeyboardModifiers mods )

Definition at line 690 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [13/25]

QT_DEFINE_QPA_EVENT_HANDLER ( bool ,
handleTouchCancelEvent ,
QWindow * window,
ulong timestamp,
const QPointingDevice * device,
Qt::KeyboardModifiers mods )

Definition at line 697 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [14/25]

QT_DEFINE_QPA_EVENT_HANDLER ( bool ,
handleTouchEvent ,
QWindow * window,
const QPointingDevice * device,
const QList< TouchPoint > & points,
Qt::KeyboardModifiers mods )

Definition at line 666 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [15/25]

QT_DEFINE_QPA_EVENT_HANDLER ( bool ,
handleTouchEvent ,
QWindow * window,
ulong timestamp,
const QPointingDevice * device,
const QList< TouchPoint > & points,
Qt::KeyboardModifiers mods )

Definition at line 673 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [16/25]

QT_DEFINE_QPA_EVENT_HANDLER ( void ,
handleApplicationStateChanged ,
Qt::ApplicationState newState,
bool forcePropagate )

Definition at line 271 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [17/25]

QT_DEFINE_QPA_EVENT_HANDLER ( void ,
handleEnterEvent ,
QWindow * window,
const QPointF & local,
const QPointF & global )

Definition at line 215 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [18/25]

QT_DEFINE_QPA_EVENT_HANDLER ( void ,
handleFocusWindowChanged ,
QWindow * window,
Qt::FocusReason r )

Definition at line 241 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [19/25]

QT_DEFINE_QPA_EVENT_HANDLER ( void ,
handleGeometryChange ,
QWindow * window,
const QRect & newRect )

Definition at line 293 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [20/25]

QT_DEFINE_QPA_EVENT_HANDLER ( void ,
handleLeaveEvent ,
QWindow * window )

Definition at line 223 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [21/25]

QT_DEFINE_QPA_EVENT_HANDLER ( void ,
handleSafeAreaMarginsChanged ,
QWindow * window )

Definition at line 266 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [22/25]

QT_DEFINE_QPA_EVENT_HANDLER ( void ,
handleThemeChange  )

Definition at line 833 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [23/25]

QT_DEFINE_QPA_EVENT_HANDLER ( void ,
handleWindowDevicePixelRatioChanged ,
QWindow * window )

Definition at line 260 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [24/25]

QT_DEFINE_QPA_EVENT_HANDLER ( void ,
handleWindowScreenChanged ,
QWindow * window,
QScreen * screen )

Definition at line 255 of file qwindowsysteminterface.cpp.

◆ QT_DEFINE_QPA_EVENT_HANDLER() [25/25]

QT_DEFINE_QPA_EVENT_HANDLER ( void ,
handleWindowStateChanged ,
QWindow * window,
Qt::WindowStates newState,
int oldState )

Definition at line 246 of file qwindowsysteminterface.cpp.

◆ qt_handleKeyEvent()

Q_GUI_EXPORT void qt_handleKeyEvent ( QWindow * window,
QEvent::Type t,
int k,
Qt::KeyboardModifiers mods,
const QString & text = QString(),
bool autorep = false,
ushort count = 1 )

Definition at line 1159 of file qwindowsysteminterface.cpp.

◆ qt_handleMouseEvent()

QT_BEGIN_NAMESPACE Q_GUI_EXPORT void qt_handleMouseEvent ( QWindow * window,
const QPointF & local,
const QPointF & global,
Qt::MouseButtons state,
Qt::MouseButton button,
QEvent::Type type,
Qt::KeyboardModifiers mods,
int timestamp )

Definition at line 1146 of file qwindowsysteminterface.cpp.

◆ qt_handleTouchEvent()

Q_GUI_EXPORT void qt_handleTouchEvent ( QWindow * window,
const QPointingDevice * device,
const QList< QEventPoint > & points,
Qt::KeyboardModifiers mods )

Definition at line 1240 of file qwindowsysteminterface.cpp.

◆ qt_handleTouchEventv2()

Q_GUI_EXPORT bool qt_handleTouchEventv2 ( QWindow * window,
const QPointingDevice * device,
const QList< QEventPoint > & points,
Qt::KeyboardModifiers mods )

Definition at line 1232 of file qwindowsysteminterface.cpp.

◆ qt_handleWheelEvent()

Q_GUI_EXPORT void qt_handleWheelEvent ( QWindow * window,
const QPointF & local,
const QPointF & global,
QPoint pixelDelta,
QPoint angleDelta,
Qt::KeyboardModifiers mods,
Qt::ScrollPhase phase )

Definition at line 1208 of file qwindowsysteminterface.cpp.

◆ qt_sendShortcutOverrideEvent()

QT_BEGIN_NAMESPACE Q_GUI_EXPORT bool qt_sendShortcutOverrideEvent ( QObject * o,
ulong timestamp,
int k,
Qt::KeyboardModifiers mods,
const QString & text = QString(),
bool autorep = false,
ushort count = 1 )

Definition at line 1171 of file qwindowsysteminterface.cpp.