quick undo change
This commit is contained in:
@@ -557,7 +557,6 @@ static void _imgui_context_menu(Imgui* self)
|
||||
{
|
||||
if (!self->isContextualActionsEnabled) return;
|
||||
|
||||
|
||||
if (_imgui_is_window_hovered() && ImGui::IsMouseClicked(ImGuiMouseButton_Right))
|
||||
imgui_open_popup(IMGUI_CONTEXT_MENU.label_get());
|
||||
|
||||
@@ -2548,6 +2547,7 @@ void imgui_update(Imgui* self)
|
||||
{
|
||||
if (ImGui::IsKeyChordPressed(hotkey.chord))
|
||||
{
|
||||
if (hotkey.is_undoable()) imgui_undo_push(self, hotkey.undoAction);
|
||||
if (hotkey.is_focus_window()) continue;
|
||||
hotkey.function(self);
|
||||
}
|
||||
|
@@ -197,8 +197,10 @@ struct ImguiHotkey
|
||||
ImGuiKeyChord chord;
|
||||
ImguiFunction function;
|
||||
std::string focusWindow{};
|
||||
std::string undoAction{};
|
||||
|
||||
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)
|
||||
@@ -423,8 +425,6 @@ static inline void imgui_end_popup(Imgui* imgui)
|
||||
imgui_pending_popup_process(imgui);
|
||||
}
|
||||
|
||||
|
||||
|
||||
enum ImguiItemType
|
||||
{
|
||||
IMGUI_ITEM,
|
||||
@@ -504,7 +504,6 @@ struct ImguiItem
|
||||
s32 windowFlags{};
|
||||
s32 rowCount = 0;
|
||||
|
||||
|
||||
void construct()
|
||||
{
|
||||
static s32 idNew = 0;
|
||||
@@ -517,7 +516,7 @@ struct ImguiItem
|
||||
label += std::format(IMGUI_LABEL_SHORTCUT_FORMAT, chordString);
|
||||
tooltip += std::format(IMGUI_TOOLTIP_SHORTCUT_FORMAT, chordString);
|
||||
if (function)
|
||||
imgui_hotkey_registry().push_back({chord, function, focusWindow});
|
||||
imgui_hotkey_registry().push_back({chord, function, focusWindow, undoAction});
|
||||
}
|
||||
|
||||
std::string labelNew{};
|
||||
|
Reference in New Issue
Block a user