From fc2f41096fafc620c4cdde84797d9ce471a0169f Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 12 Jan 2024 13:57:47 +0400 Subject: [PATCH] Attempt to fix initial window position on Windows. --- Telegram/SourceFiles/core/application.cpp | 2 +- Telegram/SourceFiles/window/main_window.cpp | 5 +++-- Telegram/SourceFiles/window/main_window.h | 2 +- Telegram/SourceFiles/window/window_controller.cpp | 4 ++++ Telegram/SourceFiles/window/window_controller.h | 1 + Telegram/lib_ui | 2 +- 6 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Telegram/SourceFiles/core/application.cpp b/Telegram/SourceFiles/core/application.cpp index 3992469730..998793df35 100644 --- a/Telegram/SourceFiles/core/application.cpp +++ b/Telegram/SourceFiles/core/application.cpp @@ -360,7 +360,7 @@ void Application::run() { startDomain(); startTray(); - _lastActivePrimaryWindow->widget()->show(); + _lastActivePrimaryWindow->firstShow(); startMediaView(); diff --git a/Telegram/SourceFiles/window/main_window.cpp b/Telegram/SourceFiles/window/main_window.cpp index d25992051a..3f8c9b5ba9 100644 --- a/Telegram/SourceFiles/window/main_window.cpp +++ b/Telegram/SourceFiles/window/main_window.cpp @@ -475,7 +475,6 @@ void MainWindow::init() { } refreshTitleWidget(); - initGeometry(); updateTitle(); updateWindowIcon(); } @@ -772,9 +771,10 @@ QRect MainWindow::countInitialGeometry( return position.rect(); } -void MainWindow::initGeometry() { +void MainWindow::firstShow() { updateMinimumSize(); if (initGeometryFromSystem()) { + show(); return; } const auto geometry = countInitialGeometry(initialPosition()); @@ -784,6 +784,7 @@ void MainWindow::initGeometry() { ).arg(geometry.width() ).arg(geometry.height())); setGeometry(geometry); + show(); } void MainWindow::positionUpdated() { diff --git a/Telegram/SourceFiles/window/main_window.h b/Telegram/SourceFiles/window/main_window.h index e59967e807..8feb329a90 100644 --- a/Telegram/SourceFiles/window/main_window.h +++ b/Telegram/SourceFiles/window/main_window.h @@ -132,6 +132,7 @@ public: void recountGeometryConstraints(); virtual void updateControlsGeometry(); + void firstShow(); bool minimizeToTray(); void updateGlobalMenu() { updateGlobalMenuHook(); @@ -197,7 +198,6 @@ private: [[nodiscard]] Core::WindowPosition nextInitialChildPosition( bool primary); [[nodiscard]] QRect countInitialGeometry(Core::WindowPosition position); - void initGeometry(); bool computeIsActive() const; diff --git a/Telegram/SourceFiles/window/window_controller.cpp b/Telegram/SourceFiles/window/window_controller.cpp index 917cd6d66b..19c12c30e9 100644 --- a/Telegram/SourceFiles/window/window_controller.cpp +++ b/Telegram/SourceFiles/window/window_controller.cpp @@ -311,6 +311,10 @@ void Controller::showTermsDelete() { })); } +void Controller::firstShow() { + _widget.firstShow(); +} + void Controller::finishFirstShow() { _widget.finishFirstShow(); checkThemeEditor(); diff --git a/Telegram/SourceFiles/window/window_controller.h b/Telegram/SourceFiles/window/window_controller.h index 36c35979e9..cd59790065 100644 --- a/Telegram/SourceFiles/window/window_controller.h +++ b/Telegram/SourceFiles/window/window_controller.h @@ -74,6 +74,7 @@ public: [[nodiscard]] Adaptive &adaptive() const; + void firstShow(); void finishFirstShow(); void setupPasscodeLock(); diff --git a/Telegram/lib_ui b/Telegram/lib_ui index 00f5bdaccd..aa39793a91 160000 --- a/Telegram/lib_ui +++ b/Telegram/lib_ui @@ -1 +1 @@ -Subproject commit 00f5bdaccdff4f53e8ba347f09f2de161b7ca7da +Subproject commit aa39793a91f1186879c15c214a2671d78eab5085