Remove unneeded moveToScreen calls

This commit is contained in:
Ilya Fedin 2020-11-23 10:00:54 +04:00 committed by John Preston
parent cffb05e3c9
commit 8819938bf2

View file

@ -361,7 +361,6 @@ OverlayWidget::OverlayWidget()
setWindowFlags(Qt::FramelessWindowHint); setWindowFlags(Qt::FramelessWindowHint);
} }
updateGeometry(QApplication::primaryScreen()->geometry()); updateGeometry(QApplication::primaryScreen()->geometry());
moveToScreen();
setAttribute(Qt::WA_NoSystemBackground, true); setAttribute(Qt::WA_NoSystemBackground, true);
setAttribute(Qt::WA_TranslucentBackground, true); setAttribute(Qt::WA_TranslucentBackground, true);
setMouseTracking(true); setMouseTracking(true);
@ -435,6 +434,8 @@ void OverlayWidget::refreshLang() {
} }
void OverlayWidget::moveToScreen() { void OverlayWidget::moveToScreen() {
Expects(windowHandle());
const auto widgetScreen = [&](auto &&widget) -> QScreen* { const auto widgetScreen = [&](auto &&widget) -> QScreen* {
if (auto handle = widget ? widget->windowHandle() : nullptr) { if (auto handle = widget ? widget->windowHandle() : nullptr) {
return handle->screen(); return handle->screen();
@ -445,12 +446,9 @@ void OverlayWidget::moveToScreen() {
? Core::App().activeWindow()->widget().get() ? Core::App().activeWindow()->widget().get()
: nullptr; : nullptr;
const auto activeWindowScreen = widgetScreen(window); const auto activeWindowScreen = widgetScreen(window);
const auto myScreen = widgetScreen(this);
// Wayland doesn't support positioning, but Qt emits screenChanged anyway // Wayland doesn't support positioning, but Qt emits screenChanged anyway
// and geometry of the widget become broken // and geometry of the widget become broken
if (activeWindowScreen if (activeWindowScreen
&& myScreen
&& myScreen != activeWindowScreen
&& !Platform::IsWayland()) { && !Platform::IsWayland()) {
windowHandle()->setScreen(activeWindowScreen); windowHandle()->setScreen(activeWindowScreen);
} }
@ -1318,12 +1316,6 @@ void OverlayWidget::onScreenResized(int screen) {
&& windowHandle()->screen() == changed) { && windowHandle()->screen() == changed) {
updateGeometry(changed->geometry()); updateGeometry(changed->geometry());
} }
if (!windowHandle()
|| !windowHandle()->screen()
|| !changed
|| windowHandle()->screen() == changed) {
moveToScreen();
}
} }
void OverlayWidget::handleVisibleChanged(bool visible) { void OverlayWidget::handleVisibleChanged(bool visible) {