diff --git a/src/apps/haikudepot/ui/MainWindow.cpp b/src/apps/haikudepot/ui/MainWindow.cpp index a9c6fcd4f7..6970cb783a 100644 --- a/src/apps/haikudepot/ui/MainWindow.cpp +++ b/src/apps/haikudepot/ui/MainWindow.cpp @@ -837,6 +837,8 @@ MainWindow::_HandlePackagesChanged(const BMessage* message) return; } + bool isFeaturedTabEnabled = fListTabs->TabAt(TAB_PROMINENT_PACKAGES)->IsEnabled(); + HDTRACE("window processing %" B_PRIi32 " package changes", packageEvents.CountEvents()); // Transfer the package change events into package *info* change events so @@ -850,6 +852,11 @@ MainWindow::_HandlePackagesChanged(const BMessage* message) const PackageInfoRef packageInfo = fModel.PackageForName(packageEvent.PackageName()); if (packageInfo.IsSet()) { + if (!isFeaturedTabEnabled && !PackageUtils::IsProminent(packageInfo)) { + fListTabs->TabAt(TAB_PROMINENT_PACKAGES)->SetEnabled(true); + isFeaturedTabEnabled = true; + } + const PackageInfoChangeEvent packageInfoEvent(packageInfo, packageEvent.Changes()); packageInfoEvents.push_back(packageInfoEvent); } else { diff --git a/src/kits/interface/TabView.cpp b/src/kits/interface/TabView.cpp index 64fd6ce8cd..dc4fb5c0e5 100644 --- a/src/kits/interface/TabView.cpp +++ b/src/kits/interface/TabView.cpp @@ -205,7 +205,14 @@ BTab::Deselect() void BTab::SetEnabled(bool enable) { + if (fView == NULL) + return; + + if (fEnabled == enable) + return; + fEnabled = enable; + fTabView->Invalidate(); }