impr: Make close button on macOS close providers if any are open instead of closing ImHex

This commit is contained in:
WerWolv
2025-07-24 21:37:49 +02:00
parent 2e200a2ab8
commit a9ce71c481
5 changed files with 47 additions and 9 deletions

View File

@@ -10,8 +10,9 @@ namespace hex::plugin::builtin {
class PopupTasksWaiting : public Popup<PopupTasksWaiting> {
public:
PopupTasksWaiting()
: hex::Popup<PopupTasksWaiting>("hex.builtin.popup.waiting_for_tasks.title", false) { }
PopupTasksWaiting(std::function<void()> onFinish)
: hex::Popup<PopupTasksWaiting>("hex.builtin.popup.waiting_for_tasks.title", false),
m_onFinish(std::move(onFinish)){ }
void drawContent() override {
ImGui::TextUnformatted("hex.builtin.popup.waiting_for_tasks.desc"_lang);
@@ -26,13 +27,16 @@ namespace hex::plugin::builtin {
if (TaskManager::getRunningTaskCount() == 0 && TaskManager::getRunningBackgroundTaskCount() == 0) {
ImGui::CloseCurrentPopup();
ImHexApi::System::closeImHex();
m_onFinish();
}
}
[[nodiscard]] ImGuiWindowFlags getFlags() const override {
return ImGuiWindowFlags_NoResize | ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoMove;
}
private:
std::function<void()> m_onFinish;
};
}