aboutsummaryrefslogtreecommitdiff
path: root/src/Window.cc
diff options
context:
space:
mode:
authorrathnor <rathnor>2004-01-23 10:38:25 (GMT)
committerrathnor <rathnor>2004-01-23 10:38:25 (GMT)
commite56c3c5b448a16a90dc1e518b29afd5c0ee544e8 (patch)
treefb30b241de738787281827cf9d63baa666839900 /src/Window.cc
parent9d035e19c8d574e148ac92cc537de6c49f000f61 (diff)
downloadfluxbox-e56c3c5b448a16a90dc1e518b29afd5c0ee544e8.zip
fluxbox-e56c3c5b448a16a90dc1e518b29afd5c0ee544e8.tar.bz2
fix some issues with window frame that happened when changing style
Diffstat (limited to 'src/Window.cc')
-rw-r--r--src/Window.cc35
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 */
3470void 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}