PlaylistContainer: Fix search field crash on macOS

Fixes #1053
This commit is contained in:
Jonas Kvinge
2022-10-12 00:11:12 +02:00
parent 7dff6f26bc
commit 3454656207

View File

@@ -264,7 +264,7 @@ void PlaylistContainer::ReloadSettings() {
} }
bool PlaylistContainer::SearchFieldHasFocus() const { bool PlaylistContainer::SearchFieldHasFocus() const {
return ui_->search_field->hasFocus(); return ui_->toolbar->isVisible() && ui_->search_field->hasFocus();
} }
void PlaylistContainer::FocusSearchField() { void PlaylistContainer::FocusSearchField() {
@@ -402,6 +402,8 @@ void PlaylistContainer::SetTabBarHeight(const int height) {
void PlaylistContainer::MaybeUpdateFilter() { void PlaylistContainer::MaybeUpdateFilter() {
if (!ui_->toolbar->isVisible()) return;
// delaying the filter update on small playlists is undesirable and an empty filter applies very quickly, too // delaying the filter update on small playlists is undesirable and an empty filter applies very quickly, too
if (manager_->current()->rowCount() < kFilterDelayPlaylistSizeThreshold || ui_->search_field->text().isEmpty()) { if (manager_->current()->rowCount() < kFilterDelayPlaylistSizeThreshold || ui_->search_field->text().isEmpty()) {
UpdateFilter(); UpdateFilter();
@@ -414,6 +416,8 @@ void PlaylistContainer::MaybeUpdateFilter() {
void PlaylistContainer::UpdateFilter() { void PlaylistContainer::UpdateFilter() {
if (!ui_->toolbar->isVisible()) return;
manager_->current()->filter()->SetFilterText(ui_->search_field->text()); manager_->current()->filter()->SetFilterText(ui_->search_field->text());
ui_->playlist->JumpToCurrentlyPlayingTrack(); ui_->playlist->JumpToCurrentlyPlayingTrack();