mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-03 16:30:02 +00:00
fix: dock plugin unable to click when in keep hide
make dock not hide when click plugin and popup show even in keep hide mode log: as title issue: https://github.com/linuxdeepin/developer-center/issues/7132
This commit is contained in:
parent
478f564631
commit
710a9f562b
@ -27,6 +27,7 @@
|
|||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
#include <dtkcore_global.h>
|
#include <dtkcore_global.h>
|
||||||
|
#include <functional>
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
@ -976,7 +977,7 @@ QVector<XWindow> TaskManager::getActiveWinGroup(XWindow xid)
|
|||||||
*/
|
*/
|
||||||
void TaskManager::updateHideState(bool delay)
|
void TaskManager::updateHideState(bool delay)
|
||||||
{
|
{
|
||||||
if (m_ddeLauncherVisible || m_trayGridWidgetVisible || m_popupVisible) {
|
if (preventDockAutoHide()) {
|
||||||
setPropHideState(HideState::Show);
|
setPropHideState(HideState::Show);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -1165,7 +1166,7 @@ void TaskManager::handleActiveWindowChanged(WindowInfoBase *info)
|
|||||||
m_activeWindow = info;
|
m_activeWindow = info;
|
||||||
XWindow winId = m_activeWindow->getXid();
|
XWindow winId = m_activeWindow->getXid();
|
||||||
m_entries->handleActiveWindowChanged(winId);
|
m_entries->handleActiveWindowChanged(winId);
|
||||||
updateHideState(true);
|
QTimer::singleShot(200, std::bind(&TaskManager::updateHideState, this, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1605,3 +1606,8 @@ bool TaskManager::showMultiWindow() const
|
|||||||
{
|
{
|
||||||
return m_showMultiWindow;
|
return m_showMultiWindow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TaskManager::preventDockAutoHide() const
|
||||||
|
{
|
||||||
|
return m_ddeLauncherVisible || m_popupVisible || m_trayGridWidgetVisible;
|
||||||
|
}
|
||||||
|
@ -129,6 +129,7 @@ public:
|
|||||||
|
|
||||||
void previewWindow(uint xid);
|
void previewWindow(uint xid);
|
||||||
void cancelPreviewWindow();
|
void cancelPreviewWindow();
|
||||||
|
bool preventDockAutoHide() const;
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void serviceRestarted();
|
void serviceRestarted();
|
||||||
|
@ -128,7 +128,7 @@ void MultiScreenWorker::onExtralRegionMonitorChanged(int x, int y, const QString
|
|||||||
// 鼠标移动到任务栏界面之外,停止计时器(延时2秒改变任务栏所在屏幕)
|
// 鼠标移动到任务栏界面之外,停止计时器(延时2秒改变任务栏所在屏幕)
|
||||||
m_delayWakeTimer->stop();
|
m_delayWakeTimer->stop();
|
||||||
|
|
||||||
if (m_hideMode == HideMode::KeepHidden) {
|
if (m_hideMode == HideMode::KeepHidden && !TaskManager::instance()->preventDockAutoHide()) {
|
||||||
TaskManager::instance()->setPropHideState(HideState::Hide);
|
TaskManager::instance()->setPropHideState(HideState::Hide);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user