fix: 任务栏位置调整左边,摩灯窗口还是从底部出来

删除定时器,使用监听Dock的FrontendWindowRect change信号,重新更新IconGeometries

Log: 魔灯效果下,窗口效果跟随任务栏位置
Bug: https://pms.uniontech.com/zentao/bug-view-44736.html
Change-Id: I5e6caf7872dc37c34d8e5fb99676d7b35940dff3
This commit is contained in:
chengbo 2020-10-29 18:08:30 +08:00
parent 4d34d4152d
commit 5f36df4430
7 changed files with 13 additions and 0 deletions

View File

@ -48,6 +48,8 @@ DockItemManager::DockItemManager(QObject *parent)
connect(it, &AppItem::requestPreviewWindow, m_appInter, &DBusDock::PreviewWindow);
connect(it, &AppItem::requestCancelPreview, m_appInter, &DBusDock::CancelPreviewWindow);
connect(this, &DockItemManager::requestUpdateDockItem, it, &AppItem::requestUpdateEntryGeometries);
m_itemList.append(it);
}

View File

@ -54,6 +54,8 @@ signals:
void requestWindowAutoHide(const bool autoHide) const;
void requestRefershWindowVisible() const;
void requestUpdateDockItem() const;
public slots:
void refershItemsIcon();
void sortPluginItems();

View File

@ -116,6 +116,8 @@ AppItem::AppItem(const QDBusObjectPath &entry, QWidget *parent)
connect(m_updateIconGeometryTimer, &QTimer::timeout, this, &AppItem::updateWindowIconGeometries, Qt::QueuedConnection);
connect(m_retryObtainIconTimer, &QTimer::timeout, this, &AppItem::refershIcon, Qt::QueuedConnection);
connect(this, &AppItem::requestUpdateEntryGeometries, this, &AppItem::updateWindowIconGeometries);
updateWindowInfos(m_itemEntryInter->windowInfos());
refershIcon();

View File

@ -63,6 +63,8 @@ signals:
void requestCancelPreview() const;
void dragReady(QWidget *dragWidget);
void requestUpdateEntryGeometries() const;
private:
void moveEvent(QMoveEvent *e) override;
void paintEvent(QPaintEvent *e) override;

View File

@ -722,6 +722,7 @@ void MultiScreenWorker::onRequestUpdateFrontendGeometry()
#endif
m_dockInter->SetFrontendWindowRect(int(rect.x()), int(rect.y()), uint(rect.width()), uint(rect.height()));
emit requestUpdateDockEntry();
}
void MultiScreenWorker::onRequestNotifyWindowManager()

View File

@ -287,6 +287,8 @@ signals:
void requestStopShowAni();
void requestStopHideAni();
void requestUpdateDockEntry();
public slots:
void onAutoHideChanged(bool autoHide);
/**

View File

@ -296,6 +296,8 @@ void MainWindow::initConnections()
connect(m_multiScreenWorker, &MultiScreenWorker::opacityChanged, this, &MainWindow::setMaskAlpha, Qt::QueuedConnection);
connect(m_multiScreenWorker, &MultiScreenWorker::displayModeChanegd, this, &MainWindow::adjustShadowMask, Qt::QueuedConnection);
connect(m_multiScreenWorker, &MultiScreenWorker::requestUpdateDockEntry, DockItemManager::instance(), &DockItemManager::requestUpdateDockItem);
// 更新拖拽区域
connect(m_multiScreenWorker, &MultiScreenWorker::requestUpdateDragArea, this, &MainWindow::resetDragWindow);