diff --git a/frame/util/docksettings.cpp b/frame/util/docksettings.cpp index d8c42cbf1..33a6a210c 100644 --- a/frame/util/docksettings.cpp +++ b/frame/util/docksettings.cpp @@ -691,6 +691,8 @@ void DockSettings::monitorAdded(const QString &path) connect(inter, &MonitorInter::YChanged, mon, &Monitor::setY); connect(inter, &MonitorInter::WidthChanged, mon, &Monitor::setW); connect(inter, &MonitorInter::HeightChanged, mon, &Monitor::setH); + connect(inter, &MonitorInter::WidthChanged, this, &DockSettings::requestUpdateRegionWatch); + connect(inter, &MonitorInter::HeightChanged, this, &DockSettings::requestUpdateRegionWatch); connect(inter, &MonitorInter::MmWidthChanged, mon, &Monitor::setMmWidth); connect(inter, &MonitorInter::MmHeightChanged, mon, &Monitor::setMmHeight); connect(inter, &MonitorInter::RotationChanged, mon, &Monitor::setRotate); diff --git a/frame/util/docksettings.h b/frame/util/docksettings.h index 1b4984152..e030e61a5 100644 --- a/frame/util/docksettings.h +++ b/frame/util/docksettings.h @@ -93,6 +93,8 @@ signals: void windowGeometryChanged() const; void opacityChanged(const quint8 value) const; void trayCountChanged() const; + // 分标率发生变化,需要更新XEventMonitor的监视区域 + void requestUpdateRegionWatch(); public slots: void updateGeometry(); diff --git a/frame/window/mainwindow.cpp b/frame/window/mainwindow.cpp index 6a88bc8de..793f3bd78 100755 --- a/frame/window/mainwindow.cpp +++ b/frame/window/mainwindow.cpp @@ -504,6 +504,7 @@ void MainWindow::initConnections() connect(m_dragWidget, &DragWidget::dragFinished, this, &MainWindow::onDragFinished); connect(DGuiApplicationHelper::instance(), &DGuiApplicationHelper::themeTypeChanged, this, &MainWindow::themeTypeChanged); connect(m_eventInter, &XEventMonitor::CursorMove, this, &MainWindow::onRegionMonitorChanged); + connect(m_settings,&DockSettings::requestUpdateRegionWatch,this,&MainWindow::updateRegionMonitorWatch); } //const QPoint MainWindow::x11GetWindowPos()