emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 8e3d120b9f: Fix zoom rect computation for some deskbar positions


From: Po Lu
Subject: master 8e3d120b9f: Fix zoom rect computation for some deskbar positions on Haiku
Date: Wed, 13 Apr 2022 00:45:52 -0400 (EDT)

branch: master
commit 8e3d120b9f06bc1cc5e84d9a8a3773700494234f
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Fix zoom rect computation for some deskbar positions on Haiku
    
    * src/haiku_support.cc (CalculateZoomRect): Fix computation for
    left top and right bottom.
---
 src/haiku_support.cc | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/haiku_support.cc b/src/haiku_support.cc
index 826e1c2100..599ff305ae 100644
--- a/src/haiku_support.cc
+++ b/src/haiku_support.cc
@@ -477,8 +477,7 @@ public:
     screen_frame = frame = screen.Frame ();
     deskbar_frame = deskbar.Frame ();
 
-    if (!(modifiers () & B_SHIFT_KEY)
-       && !deskbar.IsAutoHide ())
+    if (!(modifiers () & B_SHIFT_KEY) && !deskbar.IsAutoHide ())
       {
        switch (deskbar.Location ())
          {
@@ -489,13 +488,14 @@ public:
          case B_DESKBAR_BOTTOM:
          case B_DESKBAR_LEFT_BOTTOM:
          case B_DESKBAR_RIGHT_BOTTOM:
-           frame.bottom = deskbar_frame.bottom - 2;
+           frame.bottom = deskbar_frame.top - 2;
            break;
 
          case B_DESKBAR_LEFT_TOP:
-           if (deskbar.IsExpanded ())
+           if (!deskbar.IsExpanded ())
              frame.top = deskbar_frame.bottom + 2;
-           else
+           else if (!deskbar.IsAlwaysOnTop ()
+                    && !deskbar.IsAutoRaise ())
              frame.left = deskbar_frame.right + 2;
            break;
 
@@ -525,7 +525,7 @@ public:
        frame.left = screen_frame.left + (window_frame.left
                                          - decorator_frame.left);
        frame.right = screen_frame.right - (decorator_frame.right
-                                           - window_frame.left);
+                                           - window_frame.right);
       }
 
     return frame;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]