[haiku-commits] haiku: hrev53585 - src/apps/deskbar

  • From: waddlesplash <waddlesplash@xxxxxxxxx>
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Fri, 22 Nov 2019 18:21:48 -0500 (EST)

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);
 


Other related posts:

  • » [haiku-commits] haiku: hrev53585 - src/apps/deskbar - waddlesplash