diff --git a/headers/private/interface/BMCPrivate.h b/headers/private/interface/BMCPrivate.h index 876ad1f37c..ee6084998a 100644 --- a/headers/private/interface/BMCPrivate.h +++ b/headers/private/interface/BMCPrivate.h @@ -52,6 +52,7 @@ public: virtual void MessageReceived(BMessage* msg); virtual void MakeFocus(bool focused = true); virtual void SetMaxContentWidth(float width); + virtual void SetEnabled(bool enabled); void TogglePopUpMarker(bool show) { fShowPopUpMarker = show; } diff --git a/src/kits/interface/BMCPrivate.cpp b/src/kits/interface/BMCPrivate.cpp index e46eef58c0..5ceccecd7c 100644 --- a/src/kits/interface/BMCPrivate.cpp +++ b/src/kits/interface/BMCPrivate.cpp @@ -276,6 +276,15 @@ _BMCMenuBar_::SetMaxContentWidth(float width) } +void +_BMCMenuBar_::SetEnabled(bool enabled) +{ + fMenuField->SetEnabled(enabled); + + BMenuBar::SetEnabled(enabled); +} + + BSize _BMCMenuBar_::MinSize() { diff --git a/src/kits/interface/Menu.cpp b/src/kits/interface/Menu.cpp index 565a77e954..3bfbf98f73 100644 --- a/src/kits/interface/Menu.cpp +++ b/src/kits/interface/Menu.cpp @@ -1021,6 +1021,9 @@ BMenu::SetEnabled(bool enabled) fEnabled = enabled; + if (dynamic_cast<_BMCMenuBar_*>(Supermenu()) != NULL) + Supermenu()->SetEnabled(enabled); + if (fSuperitem) fSuperitem->SetEnabled(enabled); }