diff options
Diffstat (limited to 'src/Window.cc')
-rw-r--r-- | src/Window.cc | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/src/Window.cc b/src/Window.cc index ff67a8d..a7e3afa 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: Window.cc,v 1.265 2004/01/21 15:42:59 fluxgen Exp $ | 25 | // $Id: Window.cc,v 1.266 2004/01/23 10:37:08 rathnor Exp $ |
26 | 26 | ||
27 | #include "Window.hh" | 27 | #include "Window.hh" |
28 | 28 | ||
@@ -264,6 +264,7 @@ FluxboxWindow::FluxboxWindow(WinClient &client, FbWinFrameTheme &tm, | |||
264 | m_diesig(*this), | 264 | m_diesig(*this), |
265 | m_focussig(*this), | 265 | m_focussig(*this), |
266 | m_titlesig(*this), | 266 | m_titlesig(*this), |
267 | m_themelistener(*this), | ||
267 | moving(false), resizing(false), shaded(false), | 268 | moving(false), resizing(false), shaded(false), |
268 | iconic(false), focused(false), | 269 | iconic(false), focused(false), |
269 | stuck(false), m_managed(false), | 270 | stuck(false), m_managed(false), |
@@ -280,6 +281,8 @@ FluxboxWindow::FluxboxWindow(WinClient &client, FbWinFrameTheme &tm, | |||
280 | m_parent(client.screen().rootWindow()), | 281 | m_parent(client.screen().rootWindow()), |
281 | m_resize_corner(RIGHTBOTTOM) { | 282 | m_resize_corner(RIGHTBOTTOM) { |
282 | 283 | ||
284 | tm.reconfigSig().attach(&m_themelistener); | ||
285 | |||
283 | init(); | 286 | init(); |
284 | } | 287 | } |
285 | 288 | ||
@@ -3457,3 +3460,33 @@ void FluxboxWindow::setupWindow() { | |||
3457 | 3460 | ||
3458 | menu().reconfigure(); // update graphics | 3461 | menu().reconfigure(); // update graphics |
3459 | } | 3462 | } |
3463 | |||
3464 | |||
3465 | /** | ||
3466 | * reconfigTheme: must be called after frame is reconfigured | ||
3467 | * Client windows need to be made the same size and location as | ||
3468 | * the frame's client area. | ||
3469 | */ | ||
3470 | void FluxboxWindow::reconfigTheme() { | ||
3471 | |||
3472 | m_frame.setBorderWidth(decorations.border?frame().theme().border().width():0); | ||
3473 | if (decorations.handle && frame().theme().handleWidth() != 0) | ||
3474 | frame().showHandle(); | ||
3475 | else | ||
3476 | frame().hideHandle(); | ||
3477 | |||
3478 | ClientList::iterator it = clientList().begin(); | ||
3479 | ClientList::iterator it_end = clientList().end(); | ||
3480 | |||
3481 | int x = m_frame.clientArea().x(), | ||
3482 | y = m_frame.clientArea().y(); | ||
3483 | |||
3484 | unsigned int width = m_frame.clientArea().width(), | ||
3485 | height = m_frame.clientArea().height(); | ||
3486 | |||
3487 | for (; it != it_end; ++it) { | ||
3488 | (*it)->moveResize(x, y, width, height); | ||
3489 | } | ||
3490 | |||
3491 | sendConfigureNotify(); | ||
3492 | } | ||