diff --git a/src/apps/deskbar/BarView.cpp b/src/apps/deskbar/BarView.cpp index 683004398d..8969a0d652 100644 --- a/src/apps/deskbar/BarView.cpp +++ b/src/apps/deskbar/BarView.cpp @@ -156,7 +156,7 @@ TBarView::TBarView(BRect frame, bool vertical, bool left, bool top, AddChild(fDragRegion); fExpandoMenuBar = new TExpandoMenuBar(BRect(0, 0, 0, 0), - "ExpandoMenuBar", fVertical); + "ExpandoMenuBar", this, fVertical); fInlineScrollView = new TInlineScrollView(BRect(0, 0, 0, 0), fExpandoMenuBar, fVertical ? B_VERTICAL : B_HORIZONTAL); AddChild(fInlineScrollView); @@ -764,7 +764,7 @@ TBarView::_ChangeState(BMessage* message) } fExpandoMenuBar = new TExpandoMenuBar(BRect(0, 0, 0, 0), - "ExpandoMenuBar", fVertical); + "ExpandoMenuBar", this, fVertical); fInlineScrollView = new TInlineScrollView(BRect(0, 0, 0, 0), fExpandoMenuBar, fVertical ? B_VERTICAL : B_HORIZONTAL); AddChild(fInlineScrollView); diff --git a/src/apps/deskbar/ExpandoMenuBar.cpp b/src/apps/deskbar/ExpandoMenuBar.cpp index 5a1715ad9b..ba3c377ff5 100644 --- a/src/apps/deskbar/ExpandoMenuBar.cpp +++ b/src/apps/deskbar/ExpandoMenuBar.cpp @@ -76,17 +76,18 @@ thread_id TExpandoMenuBar::sMonThread = B_ERROR; BLocker TExpandoMenuBar::sMonLocker("expando monitor"); -TExpandoMenuBar::TExpandoMenuBar(BRect frame, const char* name, bool vertical) +TExpandoMenuBar::TExpandoMenuBar(BRect frame, const char* name, + TBarView* barView, bool vertical) : BMenuBar(frame, name, B_FOLLOW_NONE, vertical ? B_ITEMS_IN_COLUMN : B_ITEMS_IN_ROW), + fBarView(barView), fVertical(vertical), fOverflow(false), fDrawLabel(!static_cast(be_app)->Settings()->hideLabels), fShowTeamExpander(static_cast(be_app)->Settings()->superExpando), fExpandNewTeams(static_cast(be_app)->Settings()->expandNewTeams), fDeskbarMenuWidth(kMinMenuItemWidth), - fBarView(NULL), fPreviousDragTargetItem(NULL), fLastClickedItem(NULL), fClickedExpander(false) @@ -125,7 +126,6 @@ TExpandoMenuBar::AttachedToWindow() { BMenuBar::AttachedToWindow(); - fBarView = static_cast(Window())->BarView(); fTeamList.MakeEmpty(); if (fVertical) { diff --git a/src/apps/deskbar/ExpandoMenuBar.h b/src/apps/deskbar/ExpandoMenuBar.h index 186ab7cd1e..cf242dd4dc 100644 --- a/src/apps/deskbar/ExpandoMenuBar.h +++ b/src/apps/deskbar/ExpandoMenuBar.h @@ -62,7 +62,7 @@ enum drag_and_drop_selection { class TExpandoMenuBar : public BMenuBar { public: TExpandoMenuBar(BRect frame, const char* name, - bool vertical); + TBarView* barView, bool vertical); virtual void AttachedToWindow(); virtual void DetachedFromWindow(); @@ -103,6 +103,7 @@ private: void _FinishedDrag(bool invoke = false); private: + TBarView* fBarView; bool fVertical : 1; bool fOverflow : 1; bool fDrawLabel : 1; @@ -110,7 +111,6 @@ private: bool fExpandNewTeams : 1; float fDeskbarMenuWidth; - TBarView* fBarView; TTeamMenuItem* fPreviousDragTargetItem; BMenuItem* fLastMousedOverItem; BMenuItem* fLastClickedItem;