diff --git a/plugins/ui/include/ui/hex_editor.hpp b/plugins/ui/include/ui/hex_editor.hpp index 1082e48ef..289e28a4c 100644 --- a/plugins/ui/include/ui/hex_editor.hpp +++ b/plugins/ui/include/ui/hex_editor.hpp @@ -361,7 +361,13 @@ namespace hex::ui { m_enteredEditingMode = true; m_editingBytes.resize(m_currDataVisualizer->getBytesPerCell()); - m_provider->read(address + m_provider->getBaseAddress(), m_editingBytes.data(), m_editingBytes.size()); + if (m_mode == Mode::Overwrite) { + m_provider->read(address + m_provider->getBaseAddress(), m_editingBytes.data(), m_editingBytes.size()); + } else if (m_mode == Mode::Insert) { + std::memset(m_editingBytes.data(), 0x00, m_editingBytes.size()); + m_provider->insert(address, m_editingBytes.size()); + } + m_editingCellType = CellType::Hex; } diff --git a/plugins/ui/source/ui/hex_editor.cpp b/plugins/ui/source/ui/hex_editor.cpp index c4743365d..0e32d6ffa 100644 --- a/plugins/ui/source/ui/hex_editor.cpp +++ b/plugins/ui/source/ui/hex_editor.cpp @@ -398,17 +398,10 @@ namespace hex::ui { if (hovered && m_provider->isWritable()) { // Enter editing mode when double-clicking a cell if (ImGui::IsMouseDoubleClicked(ImGuiMouseButton_Left)) { - m_editingAddress = address; - m_shouldModifyValue = false; - m_enteredEditingMode = true; + setEditingAddress(address); - m_editingBytes.resize(size); - if (m_mode == Mode::Overwrite) - std::memcpy(m_editingBytes.data(), data, size); - else if (m_mode == Mode::Insert) { - std::memset(m_editingBytes.data(), 0x00, size); + if (m_mode == Mode::Insert) { std::memset(data, 0x00, size); - m_provider->insert(address, size); } m_editingCellType = cellType;