diff --git a/workspace.cpp b/workspace.cpp index 7795073a62..cfb6b9f14e 100644 --- a/workspace.cpp +++ b/workspace.cpp @@ -14,7 +14,6 @@ Copyright (C) 1999, 2000 Matthias Ettrich #include #include #include -#include #include #include @@ -1290,7 +1289,7 @@ void Workspace::smartPlacement(Client* c){ //loop over possible positions do { //test if enough room in x and y directions - if ( y + ch > maxRect.bottom() && ch <= maxRect.height() ) + if ( y + ch > maxRect.bottom() && ch <= maxRect.height()) overlap = h_wrong; // this throws the algorithm to an exit else if( x + cw > maxRect.right() ) overlap = w_wrong; @@ -1393,7 +1392,10 @@ void Workspace::smartPlacement(Client* c){ y = possible; } } - while( overlap != none && overlap != h_wrong ); + while( overlap != none && overlap != h_wrong && y< maxRect.bottom() ); + + if(ch>= maxRect.height() ) + y_optimal=maxRect.top(); // place the window c->move( x_optimal, y_optimal );