fix: 任务栏拖动改变高度完成后,开启定时器刷新监听区域

拖动任务栏改变高度后,鼠标一旦离开任务栏区域,会先收到CursorOut信号,此时窗口信息未更新,
鼠标也是按下状态,导致判断是否隐藏错误

Log: 修复任务栏状态为一直隐藏,高度拖动到最高,任务栏不会自动隐藏的问题
Influence: 任务栏
Bug: https://pms.uniontech.com/bug-view-125345.html
Change-Id: I0775811ae14bb4ae43027b3eefa53f7a8c08f6c0
This commit is contained in:
chenbin 2022-04-19 16:47:05 +08:00
parent 001ab4c907
commit 0d9b3820fd
2 changed files with 8 additions and 2 deletions

View File

@ -1401,7 +1401,10 @@ void MultiScreenWorker::checkXEventMonitorService()
auto connectionInit = [ = ](XEventMonitor * eventInter, XEventMonitor * extralEventInter, XEventMonitor * touchEventInter) {
connect(eventInter, &XEventMonitor::CursorMove, this, &MultiScreenWorker::onRegionMonitorChanged);
connect(eventInter, &XEventMonitor::ButtonPress, this, [ = ] { setStates(MousePress, true); });
connect(eventInter, &XEventMonitor::ButtonRelease, this, [ = ] { setStates(MousePress, false); });
connect(eventInter, &XEventMonitor::ButtonRelease, this, [ = ] {
setStates(MousePress, false);
onExtralRegionMonitorChanged(0, 0, m_extralRegisterKey);
});
connect(extralEventInter, &XEventMonitor::CursorOut, this, [ = ](int x, int y, const QString &key) {
if (isCursorOut(x, y)) {

View File

@ -332,7 +332,10 @@ void MainWindow::initConnections()
connect(m_updateDragAreaTimer, &QTimer::timeout, m_multiScreenWorker, &MultiScreenWorker::onRequestUpdateRegionMonitor);
connect(m_dragWidget, &DragWidget::dragPointOffset, this, [ = ] { qApp->setProperty(DRAG_STATE_PROP, true); });
connect(m_dragWidget, &DragWidget::dragFinished, this, [ = ] { qApp->setProperty(DRAG_STATE_PROP, false); });
connect(m_dragWidget, &DragWidget::dragFinished, this, [ = ] {
qApp->setProperty(DRAG_STATE_PROP, false);
m_updateDragAreaTimer->start();
});
connect(m_dragWidget, &DragWidget::dragPointOffset, this, &MainWindow::onMainWindowSizeChanged);
connect(m_dragWidget, &DragWidget::dragFinished, this, &MainWindow::resetDragWindow); // 更新拖拽区域