diff --git a/src/apps/deskbar/BarView.cpp b/src/apps/deskbar/BarView.cpp index c362e04e4d..1450463857 100644 --- a/src/apps/deskbar/BarView.cpp +++ b/src/apps/deskbar/BarView.cpp @@ -733,6 +733,10 @@ TBarView::_ChangeState(BMessage* message) // enable or disable preference items. if (vertSwap) { + TBarWindow* window = dynamic_cast(Window()); + if (window != NULL) + window->SetSizeLimits(); + fReplicantTray->fTime->SetOrientation(fVertical); if (fExpandoMenuBar != NULL) { if (fVertical) { diff --git a/src/apps/deskbar/BarWindow.cpp b/src/apps/deskbar/BarWindow.cpp index 0b6bdcf418..388846bf5c 100644 --- a/src/apps/deskbar/BarWindow.cpp +++ b/src/apps/deskbar/BarWindow.cpp @@ -102,6 +102,8 @@ TBarWindow::TBarWindow() RemoveShortcut('H', B_COMMAND_KEY | B_CONTROL_KEY); AddShortcut('F', B_COMMAND_KEY, new BMessage(kFindButton)); + + SetSizeLimits(); } @@ -294,6 +296,7 @@ TBarWindow::ScreenChanged(BRect size, color_space depth) BWindow::ScreenChanged(size, depth); fBarView->UpdatePlacement(); + SetSizeLimits(); } @@ -647,6 +650,20 @@ TBarWindow::IsShowingMenu() const } +void +TBarWindow::SetSizeLimits() +{ + BRect screenFrame = (BScreen(this)).Frame(); + if (fBarView->Vertical()) { + BWindow::SetSizeLimits(gMinimumWindowWidth, gMaximumWindowWidth, + kMenuBarHeight - 1, screenFrame.Height()); + } else { + BWindow::SetSizeLimits(screenFrame.Width(), screenFrame.Width(), + kMenuBarHeight - 1, kMaximumIconSize + 4); + } +} + + bool TBarWindow::_IsFocusMessage(BMessage* message) { diff --git a/src/apps/deskbar/BarWindow.h b/src/apps/deskbar/BarWindow.h index 212a7ef5fb..ec6eb08fe0 100644 --- a/src/apps/deskbar/BarWindow.h +++ b/src/apps/deskbar/BarWindow.h @@ -87,6 +87,8 @@ public: bool IsShowingMenu() const; + void SetSizeLimits(); + private: bool _IsFocusMessage(BMessage* message);