diff --git a/applets/taskmanager/package/contents/ui/Task.qml b/applets/taskmanager/package/contents/ui/Task.qml --- a/applets/taskmanager/package/contents/ui/Task.qml +++ b/applets/taskmanager/package/contents/ui/Task.qml @@ -142,6 +142,8 @@ hideToolTipTemporarily(); } } + + backend.cancelHighlightWindows(); } pressed = false; diff --git a/applets/taskmanager/package/contents/ui/main.qml b/applets/taskmanager/package/contents/ui/main.qml --- a/applets/taskmanager/package/contents/ui/main.qml +++ b/applets/taskmanager/package/contents/ui/main.qml @@ -175,8 +175,9 @@ TaskManagerApplet.Backend { id: backend - taskManagerItem: groupDialog.visible ? null : tasks + taskManagerItem: tasks toolTipItem: toolTipDelegate + groupDialog: groupDialog highlightWindows: plasmoid.configuration.highlightWindows onAddLauncher: { diff --git a/applets/taskmanager/plugin/backend.h b/applets/taskmanager/plugin/backend.h --- a/applets/taskmanager/plugin/backend.h +++ b/applets/taskmanager/plugin/backend.h @@ -41,6 +41,7 @@ Q_PROPERTY(QQuickItem* taskManagerItem READ taskManagerItem WRITE setTaskManagerItem NOTIFY taskManagerItemChanged) Q_PROPERTY(QQuickItem* toolTipItem READ toolTipItem WRITE setToolTipItem NOTIFY toolTipItemChanged) + Q_PROPERTY(QQuickWindow* groupDialog READ groupDialog WRITE setGroupDialog NOTIFY groupDialogChanged) Q_PROPERTY(bool highlightWindows READ highlightWindows WRITE setHighlightWindows NOTIFY highlightWindowsChanged) public: @@ -62,6 +63,9 @@ QQuickItem *toolTipItem() const; void setToolTipItem(QQuickItem *item); + QQuickWindow *groupDialog() const; + void setGroupDialog(QQuickWindow *dialog); + bool highlightWindows() const; void setHighlightWindows(bool highlight); @@ -88,6 +92,7 @@ Q_SIGNALS: void taskManagerItemChanged() const; void toolTipItemChanged() const; + void groupDialogChanged() const; void highlightWindowsChanged() const; void addLauncher(const QUrl &url) const; @@ -101,6 +106,7 @@ QQuickItem *m_taskManagerItem; QQuickItem *m_toolTipItem; + QQuickWindow *m_groupDialog; WId m_panelWinId; bool m_highlightWindows; QList m_windowsToHighlight; diff --git a/applets/taskmanager/plugin/backend.cpp b/applets/taskmanager/plugin/backend.cpp --- a/applets/taskmanager/plugin/backend.cpp +++ b/applets/taskmanager/plugin/backend.cpp @@ -88,6 +88,20 @@ } } +QQuickWindow *Backend::groupDialog() const +{ + return m_groupDialog; +} + +void Backend::setGroupDialog(QQuickWindow *dialog) +{ + if (dialog != m_groupDialog) { + m_groupDialog = dialog; + + emit groupDialogChanged(); + } +} + bool Backend::highlightWindows() const { return m_highlightWindows; @@ -324,6 +338,10 @@ void Backend::presentWindows(const QVariant &_winIds) { + if (!m_taskManagerItem || !m_taskManagerItem->window()) { + return; + } + QList winIds; const QVariantList &_winIdsList = _winIds.toList(); @@ -427,5 +445,9 @@ windows.append(m_toolTipItem->window()->winId()); } + if (windows.count() && m_groupDialog) { + windows.append(m_groupDialog->winId()); + } + KWindowEffects::highlightWindows(m_panelWinId, windows); }