diff --git a/headers/private/tracker/NavMenu.h b/headers/private/tracker/NavMenu.h index 127d94f255..0726c36d94 100644 --- a/headers/private/tracker/NavMenu.h +++ b/headers/private/tracker/NavMenu.h @@ -80,12 +80,12 @@ class BNavMenu : public BSlowMenu { BWindow *parentWindow = NULL, const BObjectList *list = NULL); // parentWindow, if specified, will be closed if nav menu item invoked // with option held down - + virtual ~BNavMenu(); - + virtual void AttachedToWindow(); virtual void DetachedFromWindow(); - + void SetNavDir(const entry_ref *); void ForceRebuild(); bool NeedsToRebuild() const; @@ -96,7 +96,7 @@ class BNavMenu : public BSlowMenu { BMessenger Target(); void SetTypesList(const BObjectList *list); - const BObjectList *TypesList() const; + const BObjectList *TypesList() const; void AddNavDir(const Model *model, uint32 what, BHandler *target, bool populateSubmenu); @@ -121,7 +121,7 @@ class BNavMenu : public BSlowMenu { protected: virtual bool StartBuildingItemList(); virtual bool AddNextItem(); - virtual void DoneBuildingItemList(); + virtual void DoneBuildingItemList(); virtual void ClearMenuBuildingState(); void BuildVolumeMenu(); @@ -142,7 +142,7 @@ class BNavMenu : public BSlowMenu { EntryListBase *fContainer; bool fIteratingDesktop; - const BObjectList *fTypesList; + BObjectList *fTypesList; TrackingHookData fTrackingHook; }; diff --git a/src/kits/tracker/NavMenu.cpp b/src/kits/tracker/NavMenu.cpp index aa6526d383..4dc61778d3 100644 --- a/src/kits/tracker/NavMenu.cpp +++ b/src/kits/tracker/NavMenu.cpp @@ -263,8 +263,10 @@ BNavMenu::BNavMenu(const char* title, uint32 message, const BHandler* target, fFlags(0), fItemList(0), fContainer(0), - fTypesList(list) + fTypesList(new BObjectList(10, true)) { + if (list != NULL) + *fTypesList = *list; InitIconPreloader(); SetFont(be_plain_font); @@ -292,8 +294,10 @@ BNavMenu::BNavMenu(const char* title, uint32 message, fFlags(0), fItemList(0), fContainer(0), - fTypesList(list) + fTypesList(new BObjectList(10, true)) { + if (list != NULL) + *fTypesList = *list; InitIconPreloader(); SetFont(be_plain_font); @@ -313,6 +317,7 @@ BNavMenu::BNavMenu(const char* title, uint32 message, BNavMenu::~BNavMenu() { + delete fTypesList; } @@ -814,7 +819,7 @@ BNavMenu::SetShowParent(bool show) void BNavMenu::SetTypesList(const BObjectList* list) { - fTypesList = list; + *fTypesList = *list; }