diff --git a/src/apps/deskbar/BarApp.cpp b/src/apps/deskbar/BarApp.cpp index c1ccc29bf6..8483fe0772 100644 --- a/src/apps/deskbar/BarApp.cpp +++ b/src/apps/deskbar/BarApp.cpp @@ -507,6 +507,13 @@ TBarApp::MessageReceived(BMessage* message) run_be_about(); break; + case kRestartTracker: + { + BRoster roster; + roster.Launch(kTrackerSignature); + break; + } + default: BApplication::MessageReceived(message); break; diff --git a/src/apps/deskbar/BarApp.h b/src/apps/deskbar/BarApp.h index 59650e4cce..0976c1a3df 100644 --- a/src/apps/deskbar/BarApp.h +++ b/src/apps/deskbar/BarApp.h @@ -79,6 +79,7 @@ const uint32 kSortRunningApps = 'SAps'; const uint32 kSuperExpando = 'SprE'; const uint32 kExpandNewTeams = 'ExTm'; const uint32 kAutoRaise = 'AtRs'; +const uint32 kRestartTracker = 'TRAK'; // from roster_private.h const uint32 kShutdownSystem = 301; diff --git a/src/apps/deskbar/BeMenu.cpp b/src/apps/deskbar/BeMenu.cpp index 82f84efcc0..c2fca348ef 100644 --- a/src/apps/deskbar/BeMenu.cpp +++ b/src/apps/deskbar/BeMenu.cpp @@ -48,6 +48,7 @@ All rights reserved. #include "PublicCommands.h" #include "RecentItems.h" #include "StatusView.h" +#include "tracker_private.h" #define ROSTER_SIG "application/x-vnd.Be-ROST" @@ -222,7 +223,15 @@ TBeMenu::AddStandardBeMenuItems() if (fBarView) dragging = fBarView->Dragging(); - BMenuItem* item = new BMenuItem( + BMenuItem* item; + BRoster roster; + if (!roster.IsRunning(kTrackerSignature)) { + item = new BMenuItem("Restart Tracker", new BMessage(kRestartTracker)); + AddItem(item); + AddSeparatorItem(); + } + + item = new BMenuItem( #ifdef HAIKU_DISTRO_COMPATIBILITY_OFFICIAL "About Haiku" #else