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 f6fe225..1bfab7f 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -2564,13 +2564,18 @@ void FluxboxWindow::configureRequestEvent(XConfigureRequestEvent &cr) { | |||
2564 | int cx = frame().x(), cy = frame().y(), ignore = 0; | 2564 | int cx = frame().x(), cy = frame().y(), ignore = 0; |
2565 | unsigned int cw = frame().width(), ch = frame().height(); | 2565 | unsigned int cw = frame().width(), ch = frame().height(); |
2566 | 2566 | ||
2567 | // if this is not m_client and m_client has resize_inc, make sure the new | 2567 | // make sure the new width/height would be ok with all clients, or else they |
2568 | // size would be ok with m_client | 2568 | // could try to resize the window back and forth |
2569 | if (client != m_client && cr.value_mask & CWWidth && | 2569 | if (client != m_client && |
2570 | cr.value_mask & CWHeight && | 2570 | cr.value_mask & CWWidth && cr.value_mask & CWHeight) { |
2571 | !m_client->checkSizeHints(cr.width, cr.height)) { | 2571 | ClientList::iterator it = clientList().begin(); |
2572 | sendConfigureNotify(); | 2572 | ClientList::iterator it_end = clientList().end(); |
2573 | return; | 2573 | for (; it != it_end; ++it) { |
2574 | if (!m_client->checkSizeHints(cr.width, cr.height)) { | ||
2575 | sendConfigureNotify(); | ||
2576 | return; | ||
2577 | } | ||
2578 | } | ||
2574 | } | 2579 | } |
2575 | 2580 | ||
2576 | if (cr.value_mask & CWBorderWidth) | 2581 | if (cr.value_mask & CWBorderWidth) |