From d5faebb81cd4e477f2fcb7d2bde542b6ae59bf8f Mon Sep 17 00:00:00 2001 From: Sergio Martins Date: Mon, 29 Jul 2019 23:13:57 +0100 Subject: [PATCH] Add support for aero-snap --- src/DragController.cpp | 4 +++- src/FloatingWindow.cpp | 7 +++---- src/Utils_p.h | 9 +++++++++ 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/DragController.cpp b/src/DragController.cpp index 4e0e4ee3..3c784e34 100644 --- a/src/DragController.cpp +++ b/src/DragController.cpp @@ -120,7 +120,9 @@ void StateNone::onEntry(QEvent *) bool StateNone::handleMouseButtonPress(Draggable *draggable, QPoint globalPos, QPoint pos) { - qCDebug(state) << "StateNone::handleMouseButtonPress: draggable" << draggable << "; globalPos" << globalPos; + qCDebug(state) << "StateNone::handleMouseButtonPress: draggable" + << draggable << "; globalPos" << globalPos + << draggable->asWidget(); q->m_draggable = draggable; q->m_pressPos = globalPos; diff --git a/src/FloatingWindow.cpp b/src/FloatingWindow.cpp index 0ea188d4..b52c4a53 100644 --- a/src/FloatingWindow.cpp +++ b/src/FloatingWindow.cpp @@ -40,7 +40,7 @@ static int s_dbg_numFloatingWindows = 0; using namespace KDDockWidgets; FloatingWindow::FloatingWindow(QWidget *parent) - : QWidget(parent, Qt::Tool) + : QWidget(parent, KDDockWidgets::supportsAeroSnap() ? Qt::Window : Qt::Tool) , Draggable(this) , m_titleBar(new TitleBar(this)) , m_vlayout(new QVBoxLayout(this)) @@ -118,14 +118,13 @@ bool FloatingWindow::nativeEvent(const QByteArray &eventType, void *message, lon void FloatingWindow::maybeCreateResizeHandler() { - if (!KDDockWidgets::supportsNativeTitleBar()) { -#if !defined(Q_OS_WIN) + if (!KDDockWidgets::supportsNativeTitleBar() && !KDDockWidgets::supportsAeroSnap()) { setWindowFlag(Qt::FramelessWindowHint, true); setWidgetResizeHandler(new WidgetResizeHandler(this)); -#endif } } + std::unique_ptr FloatingWindow::makeWindow() { return std::unique_ptr(new WindowBeingDragged(this)); diff --git a/src/Utils_p.h b/src/Utils_p.h index 64cd1599..60530a46 100644 --- a/src/Utils_p.h +++ b/src/Utils_p.h @@ -44,6 +44,15 @@ inline bool supportsNativeTitleBar() #endif } +inline bool supportsAeroSnap() +{ +#ifdef Q_OS_WIN + return false; // Change here to enable it +#else + return false; +#endif +} + inline bool windowManagerSupportsTranslucency() { #ifdef QT_X11EXTRAS_LIB