From 0712d62a3b03a5aba44e6a5068314073c4857045 Mon Sep 17 00:00:00 2001 From: Michail Vourlakos Date: Wed, 4 Apr 2018 01:58:39 +0300 Subject: [PATCH] dont lose focus from dock tooltips --because focus is lost from dock tooltips the dock settings window was closing. We take into account that case in order to not close the dock settings window in such case --- app/dock/dockconfigview.cpp | 3 ++- app/dock/docksecconfigview.cpp | 3 ++- containment/package/contents/ui/ConfigOverlay.qml | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/dock/dockconfigview.cpp b/app/dock/dockconfigview.cpp index 3b5b3d6e6..d01449fd3 100644 --- a/app/dock/dockconfigview.cpp +++ b/app/dock/dockconfigview.cpp @@ -335,7 +335,8 @@ void DockConfigView::focusOutEvent(QFocusEvent *ev) const auto *focusWindow = qGuiApp->focusWindow(); - if (focusWindow && focusWindow->flags().testFlag(Qt::Popup)) + if (focusWindow && (focusWindow->flags().testFlag(Qt::Popup) + || focusWindow->flags().testFlag(Qt::ToolTip)) ) return; if (!m_blockFocusLost && (!m_secConfigView || (m_secConfigView && !m_secConfigView->isActive()))) { diff --git a/app/dock/docksecconfigview.cpp b/app/dock/docksecconfigview.cpp index 73801410e..1e5995250 100644 --- a/app/dock/docksecconfigview.cpp +++ b/app/dock/docksecconfigview.cpp @@ -254,7 +254,8 @@ void DockSecConfigView::focusOutEvent(QFocusEvent *ev) const auto *focusWindow = qGuiApp->focusWindow(); - if (focusWindow && focusWindow->flags().testFlag(Qt::Popup)) + if (focusWindow && (focusWindow->flags().testFlag(Qt::Popup) + || focusWindow->flags().testFlag(Qt::ToolTip)) ) return; const auto parent = qobject_cast(m_parent); diff --git a/containment/package/contents/ui/ConfigOverlay.qml b/containment/package/contents/ui/ConfigOverlay.qml index 63d8251a7..77729b5f8 100644 --- a/containment/package/contents/ui/ConfigOverlay.qml +++ b/containment/package/contents/ui/ConfigOverlay.qml @@ -397,7 +397,7 @@ MouseArea { visualParent: currentApplet type: PlasmaCore.Dialog.Dock - flags: Qt.WindowStaysOnTopHint|Qt.WindowDoesNotAcceptFocus|Qt.BypassWindowManagerHint + flags: Qt.WindowStaysOnTopHint | Qt.WindowDoesNotAcceptFocus | Qt.BypassWindowManagerHint | Qt.ToolTip location: plasmoid.location onVisualParentChanged: {