From 3cde4472c84e4309369ca208ace339c51f619f21 Mon Sep 17 00:00:00 2001 From: WerWolv Date: Sat, 27 Jul 2024 16:52:15 +0200 Subject: [PATCH] impr: Jump to selection in main hex editor as well when clicking on diff entries --- .../diffing/source/content/views/view_diff.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/plugins/diffing/source/content/views/view_diff.cpp b/plugins/diffing/source/content/views/view_diff.cpp index 0ca731d6e..bf69b2563 100644 --- a/plugins/diffing/source/content/views/view_diff.cpp +++ b/plugins/diffing/source/content/views/view_diff.cpp @@ -292,10 +292,21 @@ namespace hex::plugin::diffing { // Draw start address ImGui::TableNextColumn(); if (ImGui::Selectable(hex::format("0x{:02X}", regionA.start).c_str(), false, ImGuiSelectableFlags_SpanAllColumns)) { - a.hexEditor.setSelection({ regionA.start, ((regionA.end - regionA.start) + 1) }); + const Region selectionA = { regionA.start, ((regionA.end - regionA.start) + 1) }; + const Region selectionB = { regionB.start, ((regionB.end - regionB.start) + 1) }; + + a.hexEditor.setSelection(selectionA); a.hexEditor.jumpToSelection(); - b.hexEditor.setSelection({ regionB.start, ((regionB.end - regionB.start) + 1) }); + b.hexEditor.setSelection(selectionB); b.hexEditor.jumpToSelection(); + + const auto &providers = ImHexApi::Provider::getProviders(); + auto openProvider = ImHexApi::Provider::get(); + + if (providers[a.provider] == openProvider) + ImHexApi::HexEditor::setSelection(selectionA); + else if (providers[b.provider] == openProvider) + ImHexApi::HexEditor::setSelection(selectionB); } // Draw end address