diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Ewmh.cc | 2 | ||||
-rw-r--r-- | src/Window.cc | 27 | ||||
-rw-r--r-- | src/Window.hh | 2 |
3 files changed, 23 insertions, 8 deletions
diff --git a/src/Ewmh.cc b/src/Ewmh.cc index 3453b7e..5db7478 100644 --- a/src/Ewmh.cc +++ b/src/Ewmh.cc | |||
@@ -1389,7 +1389,7 @@ void Ewmh::updateActions(FluxboxWindow &win) { | |||
1389 | actions.push_back(m_net->wm_action_minimize); | 1389 | actions.push_back(m_net->wm_action_minimize); |
1390 | 1390 | ||
1391 | unsigned int max_width, max_height; | 1391 | unsigned int max_width, max_height; |
1392 | win.maxSize(max_width, max_height); | 1392 | win.getMaxSize(&max_width, &max_height); |
1393 | 1393 | ||
1394 | // if unlimited max width we can maximize horizontal | 1394 | // if unlimited max width we can maximize horizontal |
1395 | if (max_width == 0) { | 1395 | if (max_width == 0) { |
diff --git a/src/Window.cc b/src/Window.cc index cf9fa81..43dc311 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -1261,18 +1261,33 @@ void FluxboxWindow::moveResizeForClient(int new_x, int new_y, | |||
1261 | 1261 | ||
1262 | } | 1262 | } |
1263 | 1263 | ||
1264 | void FluxboxWindow::maxSize(unsigned int &width, unsigned int &height) const { | 1264 | void FluxboxWindow::getMaxSize(unsigned int* width, unsigned int* height) const { |
1265 | |||
1266 | if (!width || !height) | ||
1267 | return; | ||
1268 | |||
1265 | ClientList::const_iterator it = clientList().begin(); | 1269 | ClientList::const_iterator it = clientList().begin(); |
1266 | ClientList::const_iterator it_end = clientList().end(); | 1270 | ClientList::const_iterator it_end = clientList().end(); |
1267 | width = height = 0; // unlimited | 1271 | |
1272 | unsigned int w; | ||
1273 | unsigned int h; | ||
1274 | |||
1275 | w = h = 0; // unlimited | ||
1276 | |||
1268 | for (; it != it_end; ++it) { | 1277 | for (; it != it_end; ++it) { |
1269 | // special case for max height/width == 0 | 1278 | // special case for max height/width == 0 |
1270 | // 0 indicates unlimited size, so we skip them | 1279 | // 0 indicates unlimited size, so we skip them |
1271 | if (!height || (*it)->maxHeight() && height > (*it)->maxHeight()) | 1280 | if (h || (*it)->maxHeight() && h > (*it)->maxHeight()) |
1272 | height = (*it)->maxHeight(); | 1281 | h = (*it)->maxHeight(); |
1273 | if (!width || (*it)->maxWidth() && width > (*it)->maxWidth()) | 1282 | if (!w || (*it)->maxWidth() && w > (*it)->maxWidth()) |
1274 | width = (*it)->maxWidth(); | 1283 | w = (*it)->maxWidth(); |
1275 | } | 1284 | } |
1285 | |||
1286 | if (width) | ||
1287 | *width = w; | ||
1288 | |||
1289 | if (height) | ||
1290 | *height = h; | ||
1276 | } | 1291 | } |
1277 | 1292 | ||
1278 | // returns whether the focus was "set" to this window | 1293 | // returns whether the focus was "set" to this window |
diff --git a/src/Window.hh b/src/Window.hh index 3c26530..d533dfc 100644 --- a/src/Window.hh +++ b/src/Window.hh | |||
@@ -305,7 +305,7 @@ public: | |||
305 | * @param width will be filled in with maximum width | 305 | * @param width will be filled in with maximum width |
306 | * @param height will be filled in with maximum height | 306 | * @param height will be filled in with maximum height |
307 | */ | 307 | */ |
308 | void maxSize(unsigned int &width, unsigned int &height) const; | 308 | void getMaxSize(unsigned int* width, unsigned int* height) const; |
309 | void setWorkspace(int n); | 309 | void setWorkspace(int n); |
310 | void updateFunctions(); | 310 | void updateFunctions(); |
311 | void restoreAttributes(); | 311 | void restoreAttributes(); |