\value PaletteChange Palette of the widget changed.
\value ParentAboutToChange The widget parent is about to change.
\value ParentChange The widget parent has changed.
+ \value PlatformPanel A platform specific panel has been requested.
\value Polish The widget is polished.
\value PolishRequest The widget should be polished.
\value QueryWhatsThis The widget should accept the event if it has "What's This?" help.
SockClose = 211, // socket closed
+ PlatformPanel = 212,
+
// 512 reserved for Qt Jambi's MetaCall event
// 513 reserved for Qt Jambi's DeleteOnMainThread event
QGuiApplicationPrivate::processTabletLeaveProximityEvent(
static_cast<QWindowSystemInterfacePrivate::TabletLeaveProximityEvent *>(e));
break;
+ case QWindowSystemInterfacePrivate::PlatformPanel:
+ QGuiApplicationPrivate::processPlatformPanelEvent(
+ static_cast<QWindowSystemInterfacePrivate::PlatformPanelEvent *>(e));
+ break;
default:
qWarning() << "Unknown user input event type:" << e->type;
break;
#endif
}
+void QGuiApplicationPrivate::processPlatformPanelEvent(QWindowSystemInterfacePrivate::PlatformPanelEvent *e)
+{
+ if (!e->window)
+ return;
+
+ if (e->window->d_func()->blockedByModalWindow) {
+ // a modal window is blocking this window, don't allow events through
+ return;
+ }
+
+ QEvent ev(QEvent::PlatformPanel);
+ QGuiApplication::sendSpontaneousEvent(e->window.data(), &ev);
+}
+
Q_GUI_EXPORT uint qHash(const QGuiApplicationPrivate::ActiveTouchPointsKey &k)
{
return qHash(k.device) + k.touchPointId;
static void processTabletEnterProximityEvent(QWindowSystemInterfacePrivate::TabletEnterProximityEvent *e);
static void processTabletLeaveProximityEvent(QWindowSystemInterfacePrivate::TabletLeaveProximityEvent *e);
+ static void processPlatformPanelEvent(QWindowSystemInterfacePrivate::PlatformPanelEvent *e);
+
#ifndef QT_NO_DRAGANDDROP
static QPlatformDragQtResponse processDrag(QWindow *w, const QMimeData *dropData, const QPoint &p, Qt::DropActions supportedActions);
static QPlatformDropQtResponse processDrop(QWindow *w, const QMimeData *dropData, const QPoint &p, Qt::DropActions supportedActions);
handleTabletLeaveProximityEvent(time, device, pointerType, uid);
}
+void QWindowSystemInterface::handlePlatformPanelEvent(QWindow *w)
+{
+ QWindowSystemInterfacePrivate::PlatformPanelEvent *e =
+ new QWindowSystemInterfacePrivate::PlatformPanelEvent(w);
+ QWindowSystemInterfacePrivate::queueWindowSystemEvent(e);
+}
+
Q_GUI_EXPORT void qt_handleMouseEvent(QWindow *w, const QPointF & local, const QPointF & global, Qt::MouseButtons b, Qt::KeyboardModifiers mods = Qt::NoModifier) {
QWindowSystemInterface::handleMouseEvent(w, local, global, b, mods);
}
static void handleTabletLeaveProximityEvent(ulong timestamp, int device, int pointerType, qint64 uid);
static void handleTabletLeaveProximityEvent(int device, int pointerType, qint64 uid);
+ static void handlePlatformPanelEvent(QWindow *w);
// For event dispatcher implementations
static bool sendWindowSystemEvents(QEventLoop::ProcessEventsFlags flags);
FileOpen,
Tablet,
TabletEnterProximity,
- TabletLeaveProximity
+ TabletLeaveProximity,
+ PlatformPanel
};
class WindowSystemEvent {
qint64 uid;
};
+ class PlatformPanelEvent : public WindowSystemEvent {
+ public:
+ explicit PlatformPanelEvent(QWindow *w)
+ : WindowSystemEvent(PlatformPanel), window(w) { }
+ QPointer<QWindow> window;
+ };
+
class WindowSystemEventList {
QList<WindowSystemEvent *> impl;
mutable QMutex mutex;
void QQnxNavigatorEventHandler::handleSwipeDown()
{
- // simulate menu key press
qNavigatorEventHandlerDebug() << Q_FUNC_INFO;
QWindow *w = QGuiApplication::focusWindow();
- QWindowSystemInterface::handleKeyEvent(w, QEvent::KeyPress, Qt::Key_Menu, Qt::NoModifier);
- QWindowSystemInterface::handleKeyEvent(w, QEvent::KeyRelease, Qt::Key_Menu, Qt::NoModifier);
+
+ if (w) {
+ // Get the top level window that is ancestor of the focus window
+ while (QWindow *parent = w->parent())
+ w = parent;
+
+ QWindowSystemInterface::handlePlatformPanelEvent(w);
+ }
}
void QQnxNavigatorEventHandler::handleExit()