From d022d2ae569aa03a74425af9f49173e0a4bd16d6 Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Thu, 15 Sep 2011 05:17:00 +0000 Subject: [PATCH] Eliminate pointless (and slow) setting of the edit box to its current text Originally committed to SVN as r5594. --- aegisub/src/subs_edit_box.cpp | 4 +++- aegisub/src/subs_edit_box.h | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) 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;