quick undo change

This commit is contained in:
2025-08-14 22:23:17 -04:00
parent 6a646717d8
commit 0b8647fe4d
2 changed files with 4 additions and 5 deletions

View File

@@ -556,7 +556,6 @@ static bool _imgui_option_popup(ImguiItem self, Imgui* imgui)
static void _imgui_context_menu(Imgui* self) static void _imgui_context_menu(Imgui* self)
{ {
if (!self->isContextualActionsEnabled) return; if (!self->isContextualActionsEnabled) return;
if (_imgui_is_window_hovered() && ImGui::IsMouseClicked(ImGuiMouseButton_Right)) if (_imgui_is_window_hovered() && ImGui::IsMouseClicked(ImGuiMouseButton_Right))
imgui_open_popup(IMGUI_CONTEXT_MENU.label_get()); imgui_open_popup(IMGUI_CONTEXT_MENU.label_get());
@@ -2548,6 +2547,7 @@ void imgui_update(Imgui* self)
{ {
if (ImGui::IsKeyChordPressed(hotkey.chord)) if (ImGui::IsKeyChordPressed(hotkey.chord))
{ {
if (hotkey.is_undoable()) imgui_undo_push(self, hotkey.undoAction);
if (hotkey.is_focus_window()) continue; if (hotkey.is_focus_window()) continue;
hotkey.function(self); hotkey.function(self);
} }

View File

@@ -197,8 +197,10 @@ struct ImguiHotkey
ImGuiKeyChord chord; ImGuiKeyChord chord;
ImguiFunction function; ImguiFunction function;
std::string focusWindow{}; std::string focusWindow{};
std::string undoAction{};
bool is_focus_window() const { return !focusWindow.empty(); } bool is_focus_window() const { return !focusWindow.empty(); }
bool is_undoable() const { return !undoAction.empty(); }
}; };
static void imgui_log_push(Imgui* self, const std::string& text) static void imgui_log_push(Imgui* self, const std::string& text)
@@ -423,8 +425,6 @@ static inline void imgui_end_popup(Imgui* imgui)
imgui_pending_popup_process(imgui); imgui_pending_popup_process(imgui);
} }
enum ImguiItemType enum ImguiItemType
{ {
IMGUI_ITEM, IMGUI_ITEM,
@@ -504,7 +504,6 @@ struct ImguiItem
s32 windowFlags{}; s32 windowFlags{};
s32 rowCount = 0; s32 rowCount = 0;
void construct() void construct()
{ {
static s32 idNew = 0; static s32 idNew = 0;
@@ -517,7 +516,7 @@ struct ImguiItem
label += std::format(IMGUI_LABEL_SHORTCUT_FORMAT, chordString); label += std::format(IMGUI_LABEL_SHORTCUT_FORMAT, chordString);
tooltip += std::format(IMGUI_TOOLTIP_SHORTCUT_FORMAT, chordString); tooltip += std::format(IMGUI_TOOLTIP_SHORTCUT_FORMAT, chordString);
if (function) if (function)
imgui_hotkey_registry().push_back({chord, function, focusWindow}); imgui_hotkey_registry().push_back({chord, function, focusWindow, undoAction});
} }
std::string labelNew{}; std::string labelNew{};