mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-05 22:54:01 +02:00
Try to react to move events in media viewer, again
This time with a weaker geometry check
This commit is contained in:
parent
4b93f58d2f
commit
b9519dd5b9
2 changed files with 9 additions and 5 deletions
|
@ -359,6 +359,7 @@ OverlayWidget::OverlayWidget()
|
|||
DEBUG_LOG(("Viewer Pos: Moved to %1, %2")
|
||||
.arg(position.x())
|
||||
.arg(position.y()));
|
||||
moveToScreen(true);
|
||||
} else if (type == QEvent::Resize) {
|
||||
const auto size = static_cast<QResizeEvent*>(e.get())->size();
|
||||
DEBUG_LOG(("Viewer Pos: Resized to %1, %2")
|
||||
|
@ -478,7 +479,7 @@ void OverlayWidget::refreshLang() {
|
|||
InvokeQueued(_widget, [=] { updateThemePreviewGeometry(); });
|
||||
}
|
||||
|
||||
void OverlayWidget::moveToScreen() {
|
||||
void OverlayWidget::moveToScreen(bool inMove) {
|
||||
const auto widgetScreen = [&](auto &&widget) -> QScreen* {
|
||||
if (auto handle = widget ? widget->windowHandle() : nullptr) {
|
||||
return handle->screen();
|
||||
|
@ -499,10 +500,10 @@ void OverlayWidget::moveToScreen() {
|
|||
DEBUG_LOG(("Viewer Pos: New actual screen: %1")
|
||||
.arg(screenList.indexOf(window()->screen())));
|
||||
}
|
||||
updateGeometry();
|
||||
updateGeometry(inMove);
|
||||
}
|
||||
|
||||
void OverlayWidget::updateGeometry() {
|
||||
void OverlayWidget::updateGeometry(bool inMove) {
|
||||
if (Platform::IsWayland()) {
|
||||
return;
|
||||
}
|
||||
|
@ -523,6 +524,9 @@ void OverlayWidget::updateGeometry() {
|
|||
const auto mask = useSizeHack
|
||||
? QRegion(QRect(QPoint(), available.size()))
|
||||
: QRegion();
|
||||
if (inMove && use.contains(_widget->geometry())) {
|
||||
return;
|
||||
}
|
||||
if ((_widget->geometry() == use)
|
||||
&& (!useSizeHack || window()->mask() == mask)) {
|
||||
return;
|
||||
|
|
|
@ -223,8 +223,8 @@ private:
|
|||
void assignMediaPointer(not_null<PhotoData*> photo);
|
||||
|
||||
void updateOver(QPoint mpos);
|
||||
void moveToScreen();
|
||||
void updateGeometry();
|
||||
void moveToScreen(bool inMove = false);
|
||||
void updateGeometry(bool inMove = false);
|
||||
bool moveToNext(int delta);
|
||||
void preloadData(int delta);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue