From e994141c5f22b706a302379304cd475d9d1728ca Mon Sep 17 00:00:00 2001 From: Leland Lucius Date: Tue, 25 Feb 2020 09:18:51 -0600 Subject: [PATCH] Fix for refresh issue on several preference panes See bug #2315, but this should be review and removed after moving to wx3.1.3. --- src/prefs/ExtImportPrefs.cpp | 15 ++++++++++++++- src/prefs/ExtImportPrefs.h | 4 ++++ src/prefs/KeyConfigPrefs.cpp | 13 +++++++++++++ src/prefs/KeyConfigPrefs.h | 4 ++++ src/prefs/MousePrefs.cpp | 12 ++++++++++++ src/prefs/MousePrefs.h | 4 ++++ 6 files changed, 51 insertions(+), 1 deletion(-) diff --git a/src/prefs/ExtImportPrefs.cpp b/src/prefs/ExtImportPrefs.cpp index 28a92f484..3b7b8a7a1 100644 --- a/src/prefs/ExtImportPrefs.cpp +++ b/src/prefs/ExtImportPrefs.cpp @@ -65,8 +65,11 @@ ExtImportPrefs::ExtImportPrefs(wxWindow * parent, wxWindowID winid) mFakeKeyEvent (false), mStopRecursiveSelection (false), last_selected (-1) { Populate(); -} + // See bug #2315 for discussion + // This should be reviewed and (possibly) removed after wx3.1.3. + Bind(wxEVT_SHOW, &ExtImportPrefs::OnShow, this); +} ExtImportPrefs::~ExtImportPrefs() { } @@ -213,6 +216,16 @@ bool ExtImportPrefs::Commit() return true; } +// See bug #2315 for discussion. This should be reviewed +// and (possibly) removed after wx3.1.3. +void ExtImportPrefs::OnShow(wxShowEvent &event) +{ + event.Skip(); + + RuleTable->Refresh(); + PluginList->Refresh(); +} + void ExtImportPrefs::OnPluginKeyDown(wxListEvent& event) { for (int i = 0; i < 1; i++) diff --git a/src/prefs/ExtImportPrefs.h b/src/prefs/ExtImportPrefs.h index ce1a080be..8272b9fb6 100644 --- a/src/prefs/ExtImportPrefs.h +++ b/src/prefs/ExtImportPrefs.h @@ -58,6 +58,10 @@ class ExtImportPrefs final : public PrefsPanel wxString HelpPageName() override; void PopulateOrExchange(ShuttleGui & S) override; + // See bug #2315 for discussion. This should be reviewed + // and (possibly) removed after wx3.1.3. + void OnShow(wxShowEvent& event); + void OnPluginKeyDown(wxListEvent& event); void OnPluginBeginDrag(wxListEvent& event); void OnRuleTableKeyDown(wxKeyEvent& event); diff --git a/src/prefs/KeyConfigPrefs.cpp b/src/prefs/KeyConfigPrefs.cpp index 7c8203756..c05ec3964 100644 --- a/src/prefs/KeyConfigPrefs.cpp +++ b/src/prefs/KeyConfigPrefs.cpp @@ -102,6 +102,10 @@ KeyConfigPrefs::KeyConfigPrefs( auto index = mView->GetIndexByName(name); mView->SelectNode(index); } + + // See bug #2315 for discussion. This should be reviewed + // and (possibly) removed after wx3.1.3. + Bind(wxEVT_SHOW, &KeyConfigPrefs::OnShow, this); } ComponentInterfaceSymbol KeyConfigPrefs::GetSymbol() @@ -459,6 +463,15 @@ TranslatableString KeyConfigPrefs::MergeWithExistingKeys( return disabledShortcuts; } +// See bug #2315 for discussion. This should be reviewed +// and (possibly) removed after wx3.1.3. +void KeyConfigPrefs::OnShow(wxShowEvent & event) +{ + event.Skip(); + + mView->Refresh(); +} + void KeyConfigPrefs::OnImport(wxCommandEvent & WXUNUSED(event)) { wxString file = wxT("Audacity-keys.xml"); diff --git a/src/prefs/KeyConfigPrefs.h b/src/prefs/KeyConfigPrefs.h index 70d6ccc6f..519b5f479 100644 --- a/src/prefs/KeyConfigPrefs.h +++ b/src/prefs/KeyConfigPrefs.h @@ -56,6 +56,10 @@ private: CommandID NameFromKey(const NormalizedKeyString & key); void SetKeyForSelected(const NormalizedKeyString & key); + // See bug #2315 for discussion. This should be reviewed + // and (possibly) removed after wx3.1.3. + void OnShow(wxShowEvent & e); + void OnViewBy(wxCommandEvent & e); void OnDefaults(wxCommandEvent & e); void OnImportDefaults(wxCommandEvent & e); diff --git a/src/prefs/MousePrefs.cpp b/src/prefs/MousePrefs.cpp index cd72eb7c0..d410b6748 100644 --- a/src/prefs/MousePrefs.cpp +++ b/src/prefs/MousePrefs.cpp @@ -64,6 +64,10 @@ MousePrefs::MousePrefs(wxWindow * parent, wxWindowID winid) : PrefsPanel(parent, winid, XO("Mouse")) { Populate(); + + // See bug #2315 for discussion. This should be reviewed + // and (possibly) removed after wx3.1.3. + Bind(wxEVT_SHOW, &MousePrefs::OnShow, this); } MousePrefs::~MousePrefs() @@ -211,6 +215,14 @@ void MousePrefs::AddItem( mList->SetItem(i, CommentColumn, wxT(" ") + comment.Translation()); } +// See bug #2315 for discussion. This should be reviewed +// and (possibly) removed after wx3.1.3. +void MousePrefs::OnShow(wxShowEvent &event) +{ + event.Skip(); + + mList->Refresh(); +} /// Update the preferences stored on disk. /// Currently does nothing as Mouse Preferences don't change. diff --git a/src/prefs/MousePrefs.h b/src/prefs/MousePrefs.h index 618afe47d..e66de95fe 100644 --- a/src/prefs/MousePrefs.h +++ b/src/prefs/MousePrefs.h @@ -39,6 +39,10 @@ class MousePrefs final : public PrefsPanel TranslatableString const & action, TranslatableString const & comment = {}); + // See bug #2315 for discussion. This should be reviewed + // and (possibly) removed after wx3.1.3. + void OnShow(wxShowEvent & event); + wxListCtrl * mList; };