From eaf4575eb85e446d10f3afc4f9fe67e7bf4756c7 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Tue, 18 Jun 2024 02:45:45 +0400 Subject: [PATCH] Fix IV window geometry restoration --- Telegram/SourceFiles/iv/iv_delegate.h | 6 +++++- Telegram/SourceFiles/iv/iv_delegate_impl.cpp | 4 ++-- Telegram/SourceFiles/iv/iv_delegate_impl.h | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/iv/iv_delegate.h b/Telegram/SourceFiles/iv/iv_delegate.h index fd94cac0a3..09374fa174 100644 --- a/Telegram/SourceFiles/iv/iv_delegate.h +++ b/Telegram/SourceFiles/iv/iv_delegate.h @@ -7,13 +7,17 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once +namespace Ui { +class RpWindow; +} // namespace Ui + namespace Iv { class Delegate { public: virtual void ivSetLastSourceWindow(not_null window) = 0; [[nodiscard]] virtual QRect ivGeometry() const = 0; - virtual void ivSaveGeometry(not_null window) = 0; + virtual void ivSaveGeometry(not_null window) = 0; }; } // namespace Iv diff --git a/Telegram/SourceFiles/iv/iv_delegate_impl.cpp b/Telegram/SourceFiles/iv/iv_delegate_impl.cpp index 5ac753d17f..4de0fa03c8 100644 --- a/Telegram/SourceFiles/iv/iv_delegate_impl.cpp +++ b/Telegram/SourceFiles/iv/iv_delegate_impl.cpp @@ -67,7 +67,7 @@ QRect DelegateImpl::ivGeometry() const { return result; } -void DelegateImpl::ivSaveGeometry(not_null window) { +void DelegateImpl::ivSaveGeometry(not_null window) { if (!window->windowHandle()) { return; } @@ -82,7 +82,7 @@ void DelegateImpl::ivSaveGeometry(not_null window) { realPosition.moncrc = 0; DEBUG_LOG(("IV Pos: Saving maximized position.")); } else { - auto r = window->geometry(); + auto r = window->body()->mapToGlobal(window->body()->rect()); realPosition.x = r.x(); realPosition.y = r.y(); realPosition.w = r.width(); diff --git a/Telegram/SourceFiles/iv/iv_delegate_impl.h b/Telegram/SourceFiles/iv/iv_delegate_impl.h index 32b15ae8fe..9c7c0fb9d2 100644 --- a/Telegram/SourceFiles/iv/iv_delegate_impl.h +++ b/Telegram/SourceFiles/iv/iv_delegate_impl.h @@ -17,7 +17,7 @@ public: void ivSetLastSourceWindow(not_null window) override; [[nodiscard]] QRect ivGeometry() const override; - void ivSaveGeometry(not_null window) override; + void ivSaveGeometry(not_null window) override; private: QPointer _lastSourceWindow;