diff --git a/plugins/builtin/include/content/views/view_pattern_editor.hpp b/plugins/builtin/include/content/views/view_pattern_editor.hpp index fd9f61aad..c896b30ea 100644 --- a/plugins/builtin/include/content/views/view_pattern_editor.hpp +++ b/plugins/builtin/include/content/views/view_pattern_editor.hpp @@ -46,6 +46,7 @@ namespace hex::plugin::builtin { std::vector m_possiblePatternFiles; u32 m_selectedPatternFile = 0; bool m_runAutomatically = false; + bool m_triggerEvaluation = false; bool m_lastEvaluationProcessed = true; bool m_lastEvaluationResult = false; diff --git a/plugins/builtin/source/content/views/view_pattern_editor.cpp b/plugins/builtin/source/content/views/view_pattern_editor.cpp index 654b2ed9e..3b034c445 100644 --- a/plugins/builtin/source/content/views/view_pattern_editor.cpp +++ b/plugins/builtin/source/content/views/view_pattern_editor.cpp @@ -147,7 +147,8 @@ namespace hex::plugin::builtin { if (ImGui::IconButton(ICON_VS_DEBUG_STOP, ImGui::GetCustomColorVec4(ImGuiCustomCol_ToolbarRed))) runtime->abort(); } else { - if (ImGui::IconButton(ICON_VS_DEBUG_START, ImGui::GetCustomColorVec4(ImGuiCustomCol_ToolbarGreen))) { + if (ImGui::IconButton(ICON_VS_DEBUG_START, ImGui::GetCustomColorVec4(ImGuiCustomCol_ToolbarGreen)) || this->m_triggerEvaluation) { + this->m_triggerEvaluation = false; this->evaluatePattern(this->m_textEditor.GetText(), provider); } } @@ -869,7 +870,7 @@ namespace hex::plugin::builtin { void ViewPatternEditor::appendEditorText(const std::string &text) { this->m_textEditor.SetCursorPosition(TextEditor::Coordinates { this->m_textEditor.GetTotalLines(), 0 }); this->m_textEditor.InsertText(hex::format("\n{0}", text)); - this->m_hasUnevaluatedChanges = true; + this->m_triggerEvaluation = true; } void ViewPatternEditor::appendVariable(const std::string &type) {