summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/window.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/window.cpp b/src/window.cpp
index 57fc81f4c..b362ffcc8 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -1053,7 +1053,8 @@ static bool IsGoodAutoPlace1(int left, int top, int width, int height, Point &po
int right = width + left;
int bottom = height + top;
- if (left < 0 || top < 22 || right > _screen.width || bottom > _screen.height) return false;
+ const Window *main_toolbar = FindWindowByClass(WC_MAIN_TOOLBAR);
+ if (left < 0 || (main_toolbar != NULL && top < main_toolbar->height) || right > _screen.width || bottom > _screen.height) return false;
/* Make sure it is not obscured by any window. */
const Window *w;
@@ -1122,7 +1123,8 @@ static Point GetAutoPlacePosition(int width, int height)
Point pt;
/* First attempt, try top-left of the screen */
- if (IsGoodAutoPlace1(0, 24, width, height, pt)) return pt;
+ const Window *main_toolbar = FindWindowByClass(WC_MAIN_TOOLBAR);
+ if (IsGoodAutoPlace1(0, main_toolbar != NULL ? main_toolbar->height + 2 : 2, width, height, pt)) return pt;
/* Second attempt, try around all existing windows with a distance of 2 pixels.
* The new window must be entirely on-screen, and not overlap with an existing window.