mirror of
https://github.com/linuxdeepin/dde-dock.git
synced 2025-06-04 17:33:05 +00:00
fix(frame): 对齐拼接屏衔接处不可放置任务栏
以计算过的是否可放位置,判断一下之后再决定是否移动 Log: 修复任务栏不可以在两个屏幕中间的问题 Bug: https://pms.uniontech.com/zentao/bug-view-27070.html
This commit is contained in:
parent
76e1e3c685
commit
35e21caf48
@ -507,9 +507,8 @@ void DockSettings::updateFrontendGeometry()
|
|||||||
resetFrontendGeometry();
|
resetFrontendGeometry();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DockSettings::setDockScreen(const QString &scrName)
|
bool DockSettings::setDockScreen(const QString &scrName)
|
||||||
{
|
{
|
||||||
m_isMouseMoveCause = true;
|
|
||||||
QList<Monitor*> monitors = m_monitors.keys();
|
QList<Monitor*> monitors = m_monitors.keys();
|
||||||
for (Monitor *monitor : monitors) {
|
for (Monitor *monitor : monitors) {
|
||||||
if (monitor && monitor->name() == scrName) {
|
if (monitor && monitor->name() == scrName) {
|
||||||
@ -517,6 +516,25 @@ void DockSettings::setDockScreen(const QString &scrName)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool canBeDock = false;
|
||||||
|
switch (m_position) {
|
||||||
|
case Top:
|
||||||
|
canBeDock = m_mouseCauseDockScreen->dockPosition().topDock;
|
||||||
|
break;
|
||||||
|
case Right:
|
||||||
|
canBeDock = m_mouseCauseDockScreen->dockPosition().rightDock;
|
||||||
|
break;
|
||||||
|
case Bottom:
|
||||||
|
canBeDock = m_mouseCauseDockScreen->dockPosition().bottomDock;
|
||||||
|
break;
|
||||||
|
case Left:
|
||||||
|
canBeDock = m_mouseCauseDockScreen->dockPosition().leftDock;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
m_isMouseMoveCause = canBeDock;
|
||||||
|
|
||||||
|
return canBeDock;
|
||||||
}
|
}
|
||||||
|
|
||||||
void DockSettings::onOpacityChanged(const double value)
|
void DockSettings::onOpacityChanged(const double value)
|
||||||
|
@ -73,7 +73,7 @@ public:
|
|||||||
void showDockSettingsMenu();
|
void showDockSettingsMenu();
|
||||||
void updateFrontendGeometry();
|
void updateFrontendGeometry();
|
||||||
|
|
||||||
void setDockScreen(const QString &scrName);
|
bool setDockScreen(const QString &scrName);
|
||||||
QString ¤tDockScreen() { return m_currentScreen; }
|
QString ¤tDockScreen() { return m_currentScreen; }
|
||||||
|
|
||||||
QSize m_mainWindowSize;
|
QSize m_mainWindowSize;
|
||||||
|
@ -1049,8 +1049,8 @@ void MainWindow::onRegionMonitorChanged(int x, int y, const QString &key)
|
|||||||
} else {
|
} else {
|
||||||
// 移动Dock至相应屏相应位置
|
// 移动Dock至相应屏相应位置
|
||||||
m_mouseCauseDock = true;
|
m_mouseCauseDock = true;
|
||||||
m_settings->setDockScreen(screen->name());
|
if (m_settings->setDockScreen(screen->name()))
|
||||||
positionChanged(m_curDockPos, m_curDockPos);
|
positionChanged(m_curDockPos, m_curDockPos);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user