From 79ae4855e3acfb9cb2c466cbb060dfb1aa8100cd Mon Sep 17 00:00:00 2001 From: Simon Rozman Date: Mon, 9 May 2016 11:57:02 +0200 Subject: [PATCH] Additional "text updated" event generation added to fix premature event receiving on EM_REPLACESEL (fixes #19) --- ZRCola/zrcolachrcatpnl.cpp | 2 ++ ZRCola/zrcolakeyhndlr.cpp | 2 ++ 2 files changed, 4 insertions(+) diff --git a/ZRCola/zrcolachrcatpnl.cpp b/ZRCola/zrcolachrcatpnl.cpp index 1eab092..687fae6 100644 --- a/ZRCola/zrcolachrcatpnl.cpp +++ b/ZRCola/zrcolachrcatpnl.cpp @@ -103,6 +103,7 @@ void wxZRColaCharacterCatalogPanel::OnGridClick(wxGridEvent& event) ZRColaApp *app = (ZRColaApp*)wxTheApp; if (app->m_mainWnd) { app->m_mainWnd->m_panel->m_decomposed->WriteText(m_grid->GetCellValue(event.GetRow(), event.GetCol())); + app->m_mainWnd->m_panel->m_decomposed->SendTextUpdatedEvent(); // Fixes #19: Premature EN_CHANGE event on EM_REPLACESEL. app->m_mainWnd->m_panel->m_decomposed->SetFocus(); } @@ -116,6 +117,7 @@ void wxZRColaCharacterCatalogPanel::OnGridKeyDown(wxKeyEvent& event) ZRColaApp *app = (ZRColaApp*)wxTheApp; if (app->m_mainWnd) { app->m_mainWnd->m_panel->m_decomposed->WriteText(m_grid->GetCellValue(m_grid->GetCursorRow(), m_grid->GetCursorColumn())); + app->m_mainWnd->m_panel->m_decomposed->SendTextUpdatedEvent(); // Fixes #19: Premature EN_CHANGE event on EM_REPLACESEL. app->m_mainWnd->m_panel->m_decomposed->SetFocus(); event.StopPropagation(); diff --git a/ZRCola/zrcolakeyhndlr.cpp b/ZRCola/zrcolakeyhndlr.cpp index dcfa127..bba4c54 100644 --- a/ZRCola/zrcolakeyhndlr.cpp +++ b/ZRCola/zrcolakeyhndlr.cpp @@ -107,6 +107,7 @@ bool wxZRColaKeyHandler::ProcessEvent(wxEvent& event) if (obj && obj->IsKindOf(wxCLASSINFO(wxTextCtrl))) { // Push text to source control. ((wxTextCtrl*)obj)->WriteText(ks.chr); + ((wxTextCtrl*)obj)->SendTextUpdatedEvent(); // Fixes #19: Premature EN_CHANGE event on EM_REPLACESEL. // Event is fully processed now. event.StopPropagation(); @@ -148,6 +149,7 @@ bool wxZRColaKeyHandler::ProcessEvent(wxEvent& event) if (obj && obj->IsKindOf(wxCLASSINFO(wxTextCtrl))) { // Push text to source control. ((wxTextCtrl*)obj)->WriteText(chr); + ((wxTextCtrl*)obj)->SendTextUpdatedEvent(); // Fixes #19: Premature EN_CHANGE event on EM_REPLACESEL. } }