diff --git a/aegisub/src/subs_edit_box.cpp b/aegisub/src/subs_edit_box.cpp index 279c0e982..20f4d1f7b 100644 --- a/aegisub/src/subs_edit_box.cpp +++ b/aegisub/src/subs_edit_box.cpp @@ -329,7 +329,7 @@ SubsEditBox::SubsEditBox(wxWindow *parent, agi::Context *context) OnSize(evt); c->subsGrid->AddSelectionListener(this); - c->ass->AddCommitListener(&SubsEditBox::Update, this); + file_changed_slot = c->ass->AddCommitListener(&SubsEditBox::Update, this); context->videoController->AddTimecodesListener(&SubsEditBox::UpdateFrameTiming, this); } SubsEditBox::~SubsEditBox() { @@ -465,12 +465,14 @@ void SubsEditBox::NextLine() { void SubsEditBox::OnChange(wxStyledTextEvent &event) { if (line && TextEdit->GetText() != line->Text) { + file_changed_slot.Block(); if (event.GetModificationType() & wxSTC_MOD_INSERTTEXT) { CommitText(_("insert text")); } else { CommitText(_("delete text")); } + file_changed_slot.Unblock(); } } diff --git a/aegisub/src/subs_edit_box.h b/aegisub/src/subs_edit_box.h index 46fac4ae9..3830a9f4a 100644 --- a/aegisub/src/subs_edit_box.h +++ b/aegisub/src/subs_edit_box.h @@ -40,6 +40,8 @@ #include #endif +#include + #include "selection_controller.h" namespace agi { struct Context; } @@ -85,6 +87,8 @@ class SubsEditBox : public wxPanel, protected SelectionListener { agi::Context *c; + agi::signal::Connection file_changed_slot; + // Box controls wxCheckBox *CommentBox; wxComboBox *StyleBox;