From d55c59c7963eec9a0a572d8e9cd959467c922677 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Wed, 10 Aug 2022 10:28:40 +0200 Subject: [PATCH] feat: Added close button for welcome screen --- lib/libimhex/source/providers/provider.cpp | 2 +- main/source/window/window.cpp | 12 +++++------- plugins/builtin/source/content/views/view_find.cpp | 2 +- plugins/builtin/source/content/welcome_screen.cpp | 7 +++++++ 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/lib/libimhex/source/providers/provider.cpp b/lib/libimhex/source/providers/provider.cpp index 610317558..66b5f67f2 100644 --- a/lib/libimhex/source/providers/provider.cpp +++ b/lib/libimhex/source/providers/provider.cpp @@ -131,7 +131,7 @@ namespace hex::prv { u32 Provider::getPageCount() const { - return std::ceil(this->getActualSize() / double(PageSize)); + return std::max(1.0, std::ceil(this->getActualSize() / double(PageSize))); } u32 Provider::getCurrentPage() const { diff --git a/main/source/window/window.cpp b/main/source/window/window.cpp index dfb8ee278..972e75c46 100644 --- a/main/source/window/window.cpp +++ b/main/source/window/window.cpp @@ -64,10 +64,6 @@ namespace hex { } static void signalHandler(int signalNumber) { - // Ignore SIGTERMs and SIGINTs so ImHex can be killed with Ctrl+C and a debugger - if (signalNumber == SIGTERM || signalNumber == SIGINT) - return; - log::fatal("Terminating with signal {}", signalNumber); EventManager::post(signalNumber); @@ -150,9 +146,11 @@ namespace hex { this->m_popupsToOpen.push_back(name); }); - for (u32 signal = 0; signal < NSIG; signal++) - std::signal(signal, signalHandler); - std::set_terminate([]{ signalHandler(SIGTERM); }); + for (u32 signal = 0; signal < NSIG; signal++) { + if (signal != SIGTERM && signal != SIGINT) + std::signal(signal, signalHandler); + } + std::set_terminate([]{ signalHandler(SIGABRT); }); auto imhexLogo = romfs::get("logo.png"); this->m_logoTexture = ImGui::LoadImageFromMemory(reinterpret_cast(imhexLogo.data()), imhexLogo.size()); diff --git a/plugins/builtin/source/content/views/view_find.cpp b/plugins/builtin/source/content/views/view_find.cpp index a7c6c1692..cfe884554 100644 --- a/plugins/builtin/source/content/views/view_find.cpp +++ b/plugins/builtin/source/content/views/view_find.cpp @@ -410,7 +410,7 @@ namespace hex::plugin::builtin { ImGui::BeginDisabled(this->m_searchRunning); { - ui::regionSelectionPicker(&this->m_searchSettings.range); + ui::regionSelectionPicker(&this->m_searchSettings.range, true, true); ImGui::NewLine(); diff --git a/plugins/builtin/source/content/welcome_screen.cpp b/plugins/builtin/source/content/welcome_screen.cpp index 427e4df77..cb248137b 100644 --- a/plugins/builtin/source/content/welcome_screen.cpp +++ b/plugins/builtin/source/content/welcome_screen.cpp @@ -262,6 +262,13 @@ namespace hex::plugin::builtin { ImGui::EndTable(); } + + ImGui::SetCursorPos(ImVec2(ImGui::GetWindowSize().x - ImGui::CalcTextSize("X").x * 2, 0)); + if (ImGui::Hyperlink("X")) { + auto provider = ImHexApi::Provider::createProvider("hex.builtin.provider.null"); + if (provider != nullptr) + (void)provider->open(); + } } static void drawWelcomeScreen() {