diff --git a/UI/SavedataScreen.cpp b/UI/SavedataScreen.cpp index 1a80d7838f..c95ca373ba 100644 --- a/UI/SavedataScreen.cpp +++ b/UI/SavedataScreen.cpp @@ -635,7 +635,6 @@ void SavedataScreen::CreateSavedataTab(UI::ViewGroup *savedata) { if (!searchFilter_.empty()) dataBrowser_->SetSearchFilter(searchFilter_); dataBrowser_->OnChoice.Handle(this, &SavedataScreen::OnSavedataButtonClick); - } void SavedataScreen::CreateSavestateTab(UI::ViewGroup *savestate) { @@ -716,7 +715,10 @@ void SavedataScreen::dialogFinished(const Screen *dialog, DialogResult result) { void SavedataScreen::sendMessage(UIMessage message, const char *value) { UIDialogScreenWithGameBackground::sendMessage(message, value); + if (message == UIMessage::SAVEDATA_SEARCH) { + EnsureTabs(); + searchFilter_ = value; dataBrowser_->SetSearchFilter(searchFilter_); stateBrowser_->SetSearchFilter(searchFilter_); diff --git a/UI/TabbedDialogScreen.cpp b/UI/TabbedDialogScreen.cpp index e762c6cef1..57b12e7007 100644 --- a/UI/TabbedDialogScreen.cpp +++ b/UI/TabbedDialogScreen.cpp @@ -115,6 +115,10 @@ void TabbedUIDialogScreenWithGameBackground::RecreateViews() { UIScreen::RecreateViews(); } +void TabbedUIDialogScreenWithGameBackground::EnsureTabs() { + tabHolder_->EnsureAllCreated(); +} + void TabbedUIDialogScreenWithGameBackground::ApplySearchFilter() { using namespace UI; auto se = GetI18NCategory(I18NCat::SEARCH); diff --git a/UI/TabbedDialogScreen.h b/UI/TabbedDialogScreen.h index fc7fc1c63a..436bb45ffa 100644 --- a/UI/TabbedDialogScreen.h +++ b/UI/TabbedDialogScreen.h @@ -21,6 +21,7 @@ protected: virtual void CreateTabs() = 0; virtual void CreateExtraButtons(UI::LinearLayout *verticalLayout, int margins) {} virtual bool ShowSearchControls() const { return true; } + virtual void EnsureTabs(); void RecreateViews() override; void sendMessage(UIMessage message, const char *value) override;