Make sure update window is in foreground

This commit is contained in:
momo5502 2022-10-01 10:39:40 +02:00
parent 8e86b676ff
commit 5aefef6171
5 changed files with 23 additions and 7 deletions

View File

@ -71,6 +71,11 @@ namespace splash
this->destroy(); this->destroy();
} }
HWND get_window() const
{
return this->window_;
}
private: private:
std::atomic_bool join_safe_{false}; std::atomic_bool join_safe_{false};
HWND window_{}; HWND window_{};
@ -212,6 +217,17 @@ namespace splash
splash_component->hide(); splash_component->hide();
} }
} }
HWND get_window()
{
auto* splash_component = component_loader::get<component>();
if (splash_component)
{
return splash_component->get_window();
}
return nullptr;
}
} }
REGISTER_COMPONENT(splash::component) REGISTER_COMPONENT(splash::component)

View File

@ -3,4 +3,5 @@
namespace splash namespace splash
{ {
void hide(); void hide();
HWND get_window();
} }

View File

@ -93,12 +93,12 @@ namespace updater
} }
} }
void perform_update() void perform_update(HWND parent_window)
{ {
const utils::progress_ui progress_ui{}; const utils::progress_ui progress_ui{};
progress_ui.set_title("Updating BOIII"); progress_ui.set_title("Updating BOIII");
progress_ui.set_line(1, "Downloading update..."); progress_ui.set_line(1, "Downloading update...");
progress_ui.show(true); progress_ui.show(true, parent_window);
const auto update_data = download_update(); const auto update_data = download_update();
@ -180,8 +180,7 @@ namespace updater
{ {
if (requires_update()) if (requires_update())
{ {
splash::hide(); perform_update(splash::get_window());
perform_update();
activate_update(); activate_update();
} }
} }

View File

@ -18,9 +18,9 @@ namespace utils
this->dialog_->StopProgressDialog(); this->dialog_->StopProgressDialog();
} }
void progress_ui::show(const bool marquee) const void progress_ui::show(const bool marquee, HWND parent) const
{ {
this->dialog_->StartProgressDialog(nullptr, nullptr, PROGDLG_AUTOTIME | (marquee ? PROGDLG_MARQUEEPROGRESS : 0), nullptr); this->dialog_->StartProgressDialog(parent, nullptr, PROGDLG_AUTOTIME | (marquee ? PROGDLG_MARQUEEPROGRESS : 0), nullptr);
} }
void progress_ui::set_progress(const size_t current, const size_t max) const void progress_ui::set_progress(const size_t current, const size_t max) const

View File

@ -10,7 +10,7 @@ namespace utils
progress_ui(); progress_ui();
~progress_ui(); ~progress_ui();
void show(bool marquee) const; void show(bool marquee, HWND parent = nullptr) const;
void set_progress(size_t current, size_t max) const; void set_progress(size_t current, size_t max) const;
void set_line(int line, const std::string& text) const; void set_line(int line, const std::string& text) const;