mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-01 07:05:48 +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 <dtkcore_global.h>
|
||||
#include <functional>
|
||||
#include <iterator>
|
||||
#include <memory>
|
||||
#include <algorithm>
|
||||
@ -976,7 +977,7 @@ QVector<XWindow> TaskManager::getActiveWinGroup(XWindow xid)
|
||||
*/
|
||||
void TaskManager::updateHideState(bool delay)
|
||||
{
|
||||
if (m_ddeLauncherVisible || m_trayGridWidgetVisible || m_popupVisible) {
|
||||
if (preventDockAutoHide()) {
|
||||
setPropHideState(HideState::Show);
|
||||
return;
|
||||
}
|
||||
@ -1165,7 +1166,7 @@ void TaskManager::handleActiveWindowChanged(WindowInfoBase *info)
|
||||
m_activeWindow = info;
|
||||
XWindow winId = m_activeWindow->getXid();
|
||||
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;
|
||||
}
|
||||
|
||||
bool TaskManager::preventDockAutoHide() const
|
||||
{
|
||||
return m_ddeLauncherVisible || m_popupVisible || m_trayGridWidgetVisible;
|
||||
}
|
||||
|
@ -129,6 +129,7 @@ public:
|
||||
|
||||
void previewWindow(uint xid);
|
||||
void cancelPreviewWindow();
|
||||
bool preventDockAutoHide() const;
|
||||
|
||||
Q_SIGNALS:
|
||||
void serviceRestarted();
|
||||
|
@ -128,7 +128,7 @@ void MultiScreenWorker::onExtralRegionMonitorChanged(int x, int y, const QString
|
||||
// 鼠标移动到任务栏界面之外,停止计时器(延时2秒改变任务栏所在屏幕)
|
||||
m_delayWakeTimer->stop();
|
||||
|
||||
if (m_hideMode == HideMode::KeepHidden) {
|
||||
if (m_hideMode == HideMode::KeepHidden && !TaskManager::instance()->preventDockAutoHide()) {
|
||||
TaskManager::instance()->setPropHideState(HideState::Hide);
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user