diff --git a/CMakeLists.txt b/CMakeLists.txt index 826896b..39e14f5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,8 @@ endif() find_package(QT NAMES Qt6 Qt5 COMPONENTS Gui REQUIRED) find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Gui REQUIRED) +find_package(QT NAMES Qt6 Qt5 COMPONENTS Quick) +find_package(Qt${QT_VERSION_MAJOR} COMPONENTS Quick) set(SOURCES framelesshelper_global.h @@ -27,6 +29,13 @@ set(SOURCES framelesswindowsmanager.cpp ) +if(TARGET Qt${QT_VERSION_MAJOR}::Quick) + list(APPEND SOURCES + framelessquickhelper.h + framelessquickhelper.cpp + ) +endif() + if(WIN32) list(APPEND SOURCES winnativeeventfilter.h @@ -76,6 +85,11 @@ endif() target_link_libraries(${PROJECT_NAME} PRIVATE Qt${QT_VERSION_MAJOR}::GuiPrivate ) +if(TARGET Qt${QT_VERSION_MAJOR}::Quick) + target_link_libraries(${PROJECT_NAME} PRIVATE + Qt${QT_VERSION_MAJOR}::Quick + ) +endif() target_include_directories(${PROJECT_NAME} PUBLIC "$" ) diff --git a/winnativeeventfilter.cpp b/winnativeeventfilter.cpp index 2a1bb29..0574ee2 100644 --- a/winnativeeventfilter.cpp +++ b/winnativeeventfilter.cpp @@ -873,6 +873,9 @@ bool WinNativeEventFilter::nativeEventFilter(const QByteArray &eventType, QPointF point = {obj->property("x").toReal(), obj->property("y").toReal()}; for (QObject *parent = obj->parent(); parent; parent = parent->parent()) { point += {parent->property("x").toReal(), parent->property("y").toReal()}; + if (parent->isWindowType()) { + break; + } } return point; };