mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-07 07:33:52 +02:00
Move media viewer back to the right screen if it was moved by window manager
This commit is contained in:
parent
c9d2ef278f
commit
dcd1e62c36
1 changed files with 9 additions and 2 deletions
|
@ -445,19 +445,26 @@ 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 != activeWindowScreen
|
||||||
&& !Platform::IsWayland()) {
|
&& !Platform::IsWayland()) {
|
||||||
windowHandle()->setScreen(activeWindowScreen);
|
windowHandle()->setScreen(activeWindowScreen);
|
||||||
}
|
}
|
||||||
|
updateGeometry();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OverlayWidget::updateGeometry() {
|
void OverlayWidget::updateGeometry() {
|
||||||
const auto screen = windowHandle() && windowHandle()->screen()
|
const auto screen = windowHandle() && windowHandle()->screen()
|
||||||
? windowHandle()->screen()
|
? windowHandle()->screen()
|
||||||
: QApplication::primaryScreen();
|
: QApplication::primaryScreen();
|
||||||
setGeometry(screen->geometry());
|
const auto available = screen->geometry();
|
||||||
|
if (geometry() == available) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
setGeometry(available);
|
||||||
|
|
||||||
auto navSkip = 2 * st::mediaviewControlMargin + st::mediaviewControlSize;
|
auto navSkip = 2 * st::mediaviewControlMargin + st::mediaviewControlSize;
|
||||||
_closeNav = myrtlrect(width() - st::mediaviewControlMargin - st::mediaviewControlSize, st::mediaviewControlMargin, st::mediaviewControlSize, st::mediaviewControlSize);
|
_closeNav = myrtlrect(width() - st::mediaviewControlMargin - st::mediaviewControlSize, st::mediaviewControlMargin, st::mediaviewControlSize, st::mediaviewControlSize);
|
||||||
|
@ -1327,7 +1334,7 @@ void OverlayWidget::handleVisibleChanged(bool visible) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void OverlayWidget::handleScreenChanged(QScreen *screen) {
|
void OverlayWidget::handleScreenChanged(QScreen *screen) {
|
||||||
updateGeometry();
|
moveToScreen();
|
||||||
}
|
}
|
||||||
|
|
||||||
void OverlayWidget::onToMessage() {
|
void OverlayWidget::onToMessage() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue