From 10c3a2ca169e19a247380e4e000e432014d16923 Mon Sep 17 00:00:00 2001 From: Thomas Goyne Date: Sun, 23 Jan 2011 06:45:03 +0000 Subject: [PATCH] Only bind wxEVT_COMMAND_MENU_SELECTED once rather than once per command as large numbers of event handlers make wx explode Originally committed to SVN as r5263. --- aegisub/src/frame_main.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/aegisub/src/frame_main.cpp b/aegisub/src/frame_main.cpp index b13839dd1..9e22e8bc5 100644 --- a/aegisub/src/frame_main.cpp +++ b/aegisub/src/frame_main.cpp @@ -151,10 +151,7 @@ FrameMain::FrameMain (wxArrayString args) StartupLog("Binding commands"); // XXX: This is a hack for now, it will need to be dealt with when other frames are involved. - int count = cmd::count(); - for (int i = 0; i < count; i++) { - Bind(wxEVT_COMMAND_MENU_SELECTED, &FrameMain::cmd_call, this, i); - } + Bind(wxEVT_COMMAND_MENU_SELECTED, &FrameMain::cmd_call, this); #ifdef __WXMAC__ // Bind(FrameMain::OnAbout, &FrameMain::cmd_call, this, cmd::id("app/about")); @@ -242,7 +239,8 @@ FrameMain::~FrameMain () { void FrameMain::cmd_call(wxCommandEvent& event) { int id = event.GetId(); LOG_D("event/select") << "Id: " << id; - cmd::call(context.get(), id); + if (id < cmd::count()) + cmd::call(context.get(), id); } /// @brief Initialize toolbar