ux: Fix a bunch of weird behaviour in the data information view
This commit is contained in:
parent
4de8990b5c
commit
6219743c82
2
.gitignore
vendored
2
.gitignore
vendored
@ -2,8 +2,8 @@
|
|||||||
.idea/
|
.idea/
|
||||||
|
|
||||||
cmake-build-debug/
|
cmake-build-debug/
|
||||||
|
|
||||||
cmake-build-release/
|
cmake-build-release/
|
||||||
|
cmake-build-relwithdebinfo/
|
||||||
|
|
||||||
build-linux/
|
build-linux/
|
||||||
build/
|
build/
|
||||||
|
4
external/ImGui/include/imgui_memory_editor.h
vendored
4
external/ImGui/include/imgui_memory_editor.h
vendored
@ -161,6 +161,8 @@ struct MemoryEditor
|
|||||||
GotoAddr = addr_min;
|
GotoAddr = addr_min;
|
||||||
DataPreviewAddr = addr_min;
|
DataPreviewAddr = addr_min;
|
||||||
DataPreviewAddrEnd = addr_max;
|
DataPreviewAddrEnd = addr_max;
|
||||||
|
DataPreviewAddrOld = addr_min;
|
||||||
|
DataPreviewAddrEndOld = addr_max;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct Sizes
|
struct Sizes
|
||||||
@ -722,8 +724,6 @@ struct MemoryEditor
|
|||||||
ImGui::BeginChild("##scrolling");
|
ImGui::BeginChild("##scrolling");
|
||||||
ImGui::SetScrollFromPosY(ImGui::GetCursorStartPos().y + (GotoAddr / Cols) * ImGui::GetTextLineHeight());
|
ImGui::SetScrollFromPosY(ImGui::GetCursorStartPos().y + (GotoAddr / Cols) * ImGui::GetTextLineHeight());
|
||||||
ImGui::EndChild();
|
ImGui::EndChild();
|
||||||
DataEditingAddr = DataPreviewAddr = HighlightMin;
|
|
||||||
DataPreviewAddrEnd = HighlightMax;
|
|
||||||
}
|
}
|
||||||
GotoAddr = (size_t)-1;
|
GotoAddr = (size_t)-1;
|
||||||
}
|
}
|
||||||
|
@ -73,6 +73,7 @@ namespace hex {
|
|||||||
std::vector<u8> buffer(this->m_blockSize, 0x00);
|
std::vector<u8> buffer(this->m_blockSize, 0x00);
|
||||||
std::memset(this->m_valueCounts.data(), 0x00, this->m_valueCounts.size() * sizeof(u32));
|
std::memset(this->m_valueCounts.data(), 0x00, this->m_valueCounts.size() * sizeof(u32));
|
||||||
this->m_blockEntropy.clear();
|
this->m_blockEntropy.clear();
|
||||||
|
this->m_valueCounts.fill(0);
|
||||||
|
|
||||||
for (u64 i = 0; i < provider->getSize(); i += this->m_blockSize) {
|
for (u64 i = 0; i < provider->getSize(); i += this->m_blockSize) {
|
||||||
std::array<ImU64, 256> blockValueCounts = { 0 };
|
std::array<ImU64, 256> blockValueCounts = { 0 };
|
||||||
@ -216,7 +217,9 @@ namespace hex {
|
|||||||
ImPlot::PlotLine("##entropy_line", this->m_blockEntropy.data(), this->m_blockEntropy.size());
|
ImPlot::PlotLine("##entropy_line", this->m_blockEntropy.data(), this->m_blockEntropy.size());
|
||||||
|
|
||||||
if (ImPlot::DragLineX("Position", &this->m_entropyHandlePosition, false)) {
|
if (ImPlot::DragLineX("Position", &this->m_entropyHandlePosition, false)) {
|
||||||
EventManager::post<RequestSelectionChange>( Region{ u64(this->m_entropyHandlePosition * this->m_blockSize) + provider->getBaseAddress(), 1 });
|
u64 address = u64(this->m_entropyHandlePosition * this->m_blockSize) + provider->getBaseAddress();
|
||||||
|
address = std::min(address, provider->getBaseAddress() + provider->getSize() - 1);
|
||||||
|
EventManager::post<RequestSelectionChange>( Region{ address, 1 });
|
||||||
}
|
}
|
||||||
|
|
||||||
ImPlot::EndPlot();
|
ImPlot::EndPlot();
|
||||||
|
Loading…
Reference in New Issue
Block a user