fix: Pressing enter while in insert mode not behaving correctly

This commit is contained in:
WerWolv
2025-12-06 16:11:01 +01:00
parent d575d0f724
commit 95f010395c
2 changed files with 9 additions and 10 deletions

View File

@@ -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;
}

View File

@@ -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;