diff options
Diffstat (limited to 'src/Window.cc')
-rw-r--r-- | src/Window.cc | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/Window.cc b/src/Window.cc index 632c1e7..eb2f398 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -2570,13 +2570,18 @@ void FluxboxWindow::configureRequestEvent(XConfigureRequestEvent &cr) { | |||
2570 | int cx = frame().x(), cy = frame().y(), ignore = 0; | 2570 | int cx = frame().x(), cy = frame().y(), ignore = 0; |
2571 | unsigned int cw = frame().width(), ch = frame().height(); | 2571 | unsigned int cw = frame().width(), ch = frame().height(); |
2572 | 2572 | ||
2573 | // if this is not m_client and m_client has resize_inc, make sure the new | 2573 | // make sure the new width/height would be ok with all clients, or else they |
2574 | // size would be ok with m_client | 2574 | // could try to resize the window back and forth |
2575 | if (client != m_client && cr.value_mask & CWWidth && | 2575 | if (client != m_client && |
2576 | cr.value_mask & CWHeight && | 2576 | cr.value_mask & CWWidth && cr.value_mask & CWHeight) { |
2577 | !m_client->checkSizeHints(cr.width, cr.height)) { | 2577 | ClientList::iterator it = clientList().begin(); |
2578 | sendConfigureNotify(); | 2578 | ClientList::iterator it_end = clientList().end(); |
2579 | return; | 2579 | for (; it != it_end; ++it) { |
2580 | if (!m_client->checkSizeHints(cr.width, cr.height)) { | ||
2581 | sendConfigureNotify(); | ||
2582 | return; | ||
2583 | } | ||
2584 | } | ||
2580 | } | 2585 | } |
2581 | 2586 | ||
2582 | if (cr.value_mask & CWBorderWidth) | 2587 | if (cr.value_mask & CWBorderWidth) |