diff options
Diffstat (limited to 'src/RowSmartPlacement.cc')
-rw-r--r-- | src/RowSmartPlacement.cc | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/RowSmartPlacement.cc b/src/RowSmartPlacement.cc index eb2956b..1c66a18 100644 --- a/src/RowSmartPlacement.cc +++ b/src/RowSmartPlacement.cc | |||
@@ -57,11 +57,12 @@ bool RowSmartPlacement::placeWindow(const std::vector<FluxboxWindow *> &windowli | |||
57 | if (screen_placement.rowDirection() == ScreenPlacement::RIGHTLEFT) | 57 | if (screen_placement.rowDirection() == ScreenPlacement::RIGHTLEFT) |
58 | change_x = -1; | 58 | change_x = -1; |
59 | 59 | ||
60 | int win_w = win.width() + win.fbWindow().borderWidth()*2 + win.widthOffset(); | ||
61 | int win_h = win.height() + win.fbWindow().borderWidth()*2 + win.heightOffset(); | ||
60 | 62 | ||
63 | int x_off = win.xOffset(); | ||
64 | int y_off = win.yOffset(); | ||
61 | 65 | ||
62 | |||
63 | int win_h = win.height() + win.fbWindow().borderWidth()*2; | ||
64 | int win_w = win.width() + win.fbWindow().borderWidth()*2; | ||
65 | int test_y; | 66 | int test_y; |
66 | if (top_bot) | 67 | if (top_bot) |
67 | test_y = head_top; | 68 | test_y = head_top; |
@@ -102,10 +103,10 @@ bool RowSmartPlacement::placeWindow(const std::vector<FluxboxWindow *> &windowli | |||
102 | for (; win_it != win_it_end && placed; ++win_it) { | 103 | for (; win_it != win_it_end && placed; ++win_it) { |
103 | FluxboxWindow &window = **win_it; | 104 | FluxboxWindow &window = **win_it; |
104 | 105 | ||
105 | int curr_x = window.x(); | 106 | int curr_x = window.x() + window.xOffset(); |
106 | int curr_y = window.y(); | 107 | int curr_y = window.y() + window.yOffset(); |
107 | int curr_w = window.width() + window.fbWindow().borderWidth()*2; | 108 | int curr_w = window.width() + window.fbWindow().borderWidth()*2 + window.widthOffset(); |
108 | int curr_h = window.height() + window.fbWindow().borderWidth()*2; | 109 | int curr_h = window.height() + window.fbWindow().borderWidth()*2 + window.heightOffset(); |
109 | 110 | ||
110 | if (curr_x < test_x + win_w && | 111 | if (curr_x < test_x + win_w && |
111 | curr_x + curr_w > test_x && | 112 | curr_x + curr_w > test_x && |
@@ -138,8 +139,8 @@ bool RowSmartPlacement::placeWindow(const std::vector<FluxboxWindow *> &windowli | |||
138 | 139 | ||
139 | 140 | ||
140 | if (placed) { | 141 | if (placed) { |
141 | place_x = test_x; | 142 | place_x = test_x + x_off; |
142 | place_y = test_y; | 143 | place_y = test_y + y_off; |
143 | 144 | ||
144 | break; | 145 | break; |
145 | } | 146 | } |