From 564f33e8b29a6f73050f4da3f843b942aaf0d739 Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: 周三, 08 5月 2024 19:36:16 +0800 Subject: [PATCH] Improve event filter handling --- src/core/qwkglobal_p.h | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 40 insertions(+), 2 deletions(-) diff --git a/src/core/qwkglobal_p.h b/src/core/qwkglobal_p.h index 462ca6b..57b499f 100644 --- a/src/core/qwkglobal_p.h +++ b/src/core/qwkglobal_p.h @@ -1,9 +1,24 @@ +// Copyright (C) 2023-2024 Stdware Collections (https://www.github.com/stdware) +// Copyright (C) 2021-2023 wangwenx190 (Yuhang Zhao) +// SPDX-License-Identifier: Apache-2.0 + #ifndef QWKGLOBAL_P_H #define QWKGLOBAL_P_H -#include <QtCore/QLoggingCategory> +// +// W A R N I N G !!! +// ----------------- +// +// This file is not part of the QWindowKit API. It is used purely as an +// implementation detail. This header file may change from version to +// version without notice, or may even be removed. +// -#include <QWKCore/qwkcoreglobal.h> +#include <QtCore/QObject> +#include <QtCore/QLoggingCategory> +#include <QtGui/QMouseEvent> + +#include <QWKCore/qwkglobal.h> QWK_CORE_EXPORT Q_DECLARE_LOGGING_CATEGORY(qWindowKitLog) @@ -30,4 +45,27 @@ # define QWK_USED __attribute__((used)) #endif +namespace QWK { + + inline QPoint getMouseEventScenePos(const QMouseEvent *event) { +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + return event->scenePosition().toPoint(); +#else + return event->windowPos().toPoint(); +#endif + } + + inline QPoint getMouseEventGlobalPos(const QMouseEvent *event) { +#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) + return event->globalPosition().toPoint(); +#else + return event->screenPos().toPoint(); +#endif + } + + // Be careful when apply this function to a widget + QWK_CORE_EXPORT bool forwardObjectEventFilters(QObject *currentFilter, QObject *receiver, + QEvent *event); +} + #endif // QWKGLOBAL_P_H -- Gitblit v1.9.1