hrev53585 adds 1 changeset to branch 'master'
old head: 7586efaf07c0a4b07529c98a0e9e525942d4864b
new head: 7e27cd8e6f975b7f18b2c2723ca5d165c09fa1e7
overview:
https://git.haiku-os.org/haiku/log/?qt=range&q=7e27cd8e6f97+%5E7586efaf07c0
----------------------------------------------------------------------------
7e27cd8e6f97: Deskbar: Update window resize size limits
With B_NOT_V_RESIZABLE ctrl+alt+rmb can be used to resize the window
in undesired ways. Set window size limits to prevent user from resizing
the window beyond the set size limits.
Update window size limits on ScreenChanged()
Fixes #15067
Change-Id: Ia10eafb9860009019be35ec5c244d034861eeae9
Reviewed-on: https://review.haiku-os.org/c/haiku/+/1968
Reviewed-by: Axel Dörfler <axeld@xxxxxxxxxxxxxxxx>
Reviewed-by: Adrien Destugues <pulkomandy@xxxxxxxxx>
[ John Scipione <jscipione@xxxxxxxxx> ]
----------------------------------------------------------------------------
Revision: hrev53585
Commit: 7e27cd8e6f975b7f18b2c2723ca5d165c09fa1e7
URL: https://git.haiku-os.org/haiku/commit/?id=7e27cd8e6f97
Author: John Scipione <jscipione@xxxxxxxxx>
Date: Mon Nov 18 02:55:24 2019 UTC
Committer: waddlesplash <waddlesplash@xxxxxxxxx>
Commit-Date: Fri Nov 22 23:21:44 2019 UTC
Ticket: https://dev.haiku-os.org/ticket/15067
----------------------------------------------------------------------------
3 files changed, 23 insertions(+)
src/apps/deskbar/BarView.cpp | 4 ++++
src/apps/deskbar/BarWindow.cpp | 17 +++++++++++++++++
src/apps/deskbar/BarWindow.h | 2 ++
----------------------------------------------------------------------------
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<TBarWindow*>(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);