aboutsummaryrefslogtreecommitdiff
path: root/src/Window.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/Window.cc')
-rw-r--r--src/Window.cc62
1 files changed, 13 insertions, 49 deletions
diff --git a/src/Window.cc b/src/Window.cc
index 5a432dd..d7a2bee 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -422,8 +422,6 @@ void FluxboxWindow::init() {
422 fluxbox.saveWindowSearchGroup(frame().window().window(), this); 422 fluxbox.saveWindowSearchGroup(frame().window().window(), this);
423 fluxbox.saveWindowSearchGroup(frame().tabcontainer().window(), this); 423 fluxbox.saveWindowSearchGroup(frame().tabcontainer().window(), this);
424 424
425 frame().resize(m_client->width(), m_client->height());
426
427 m_workspace_number = m_screen.currentWorkspaceID(); 425 m_workspace_number = m_screen.currentWorkspaceID();
428 426
429 // set default decorations but don't apply them 427 // set default decorations but don't apply them
@@ -619,11 +617,7 @@ void FluxboxWindow::attachClient(WinClient &client, int x, int y) {
619 // reparent window to this 617 // reparent window to this
620 frame().setClientWindow(**client_it); 618 frame().setClientWindow(**client_it);
621 619
622 moveResizeClient(**client_it, 620 moveResizeClient(**client_it);
623 frame().clientArea().x(),
624 frame().clientArea().y(),
625 frame().clientArea().width(),
626 frame().clientArea().height());
627 621
628 // create a labelbutton for this client and 622 // create a labelbutton for this client and
629 // associate it with the pointer 623 // associate it with the pointer
@@ -645,11 +639,7 @@ void FluxboxWindow::attachClient(WinClient &client, int x, int y) {
645 } else { // client.fbwindow() == 0 639 } else { // client.fbwindow() == 0
646 associateClient(client); 640 associateClient(client);
647 641
648 moveResizeClient(client, 642 moveResizeClient(client);
649 frame().clientArea().x(),
650 frame().clientArea().y(),
651 frame().clientArea().width(),
652 frame().clientArea().height());
653 643
654 // right now, this block only happens with new windows or on restart 644 // right now, this block only happens with new windows or on restart
655 bool is_startup = Fluxbox::instance()->isStartup(); 645 bool is_startup = Fluxbox::instance()->isStartup();
@@ -2870,8 +2860,8 @@ void FluxboxWindow::update(FbTk::Subject *subj) {
2870 setFullscreenLayer(); 2860 setFullscreenLayer();
2871 } 2861 }
2872 } else if (subj == &m_theme.reconfigSig()) { 2862 } else if (subj == &m_theme.reconfigSig()) {
2873 frame().reconfigure(); 2863 frame().applyDecorations();
2874 reconfigTheme(); 2864 sendConfigureNotify();
2875 } else if (m_initialized && subj == &m_frame.frameExtentSig()) { 2865 } else if (m_initialized && subj == &m_frame.frameExtentSig()) {
2876 Fluxbox::instance()->updateFrameExtents(*this); 2866 Fluxbox::instance()->updateFrameExtents(*this);
2877 sendConfigureNotify(); 2867 sendConfigureNotify();
@@ -3598,15 +3588,16 @@ void FluxboxWindow::fixsize() {
3598 } 3588 }
3599} 3589}
3600 3590
3601void FluxboxWindow::moveResizeClient(WinClient &client, int x, int y, 3591void FluxboxWindow::moveResizeClient(WinClient &client) {
3602 unsigned int height, unsigned int width) { 3592 client.moveResize(frame().clientArea().x(), frame().clientArea().y(),
3603 client.moveResize(x, y,
3604 frame().clientArea().width(),
3605 frame().clientArea().height());
3606 client.sendConfigureNotify(frame().x() + frame().clientArea().x() + frame().window().borderWidth(),
3607 frame().y() + frame().clientArea().y() + frame().window().borderWidth(),
3608 frame().clientArea().width(), 3593 frame().clientArea().width(),
3609 frame().clientArea().height()); 3594 frame().clientArea().height());
3595 client.sendConfigureNotify(frame().x() + frame().clientArea().x() +
3596 frame().window().borderWidth(),
3597 frame().y() + frame().clientArea().y() +
3598 frame().window().borderWidth(),
3599 frame().clientArea().width(),
3600 frame().clientArea().height());
3610} 3601}
3611 3602
3612void FluxboxWindow::sendConfigureNotify() { 3603void FluxboxWindow::sendConfigureNotify() {
@@ -3619,11 +3610,7 @@ void FluxboxWindow::sendConfigureNotify() {
3619 of the client window is. (ie frame pos + client pos inside the frame = send pos) 3610 of the client window is. (ie frame pos + client pos inside the frame = send pos)
3620 */ 3611 */
3621 //!! 3612 //!!
3622 moveResizeClient(client, 3613 moveResizeClient(client);
3623 frame().clientArea().x(),
3624 frame().clientArea().y(),
3625 frame().clientArea().width(),
3626 frame().clientArea().height());
3627 3614
3628 } // end for 3615 } // end for
3629 3616
@@ -3846,29 +3833,6 @@ void FluxboxWindow::updateButtons() {
3846 frame().reconfigure(); 3833 frame().reconfigure();
3847} 3834}
3848 3835
3849/**
3850 * reconfigTheme: must be called after frame is reconfigured
3851 * Client windows need to be made the same size and location as
3852 * the frame's client area.
3853 */
3854void FluxboxWindow::reconfigTheme() {
3855
3856 ClientList::iterator it = clientList().begin();
3857 ClientList::iterator it_end = clientList().end();
3858
3859 int x = m_frame.clientArea().x(),
3860 y = m_frame.clientArea().y();
3861
3862 unsigned int width = m_frame.clientArea().width(),
3863 height = m_frame.clientArea().height();
3864
3865 for (; it != it_end; ++it) {
3866 (*it)->moveResize(x, y, width, height);
3867 }
3868
3869 sendConfigureNotify();
3870}
3871
3872// grab pointer and increase counter. 3836// grab pointer and increase counter.
3873// we need this to count grab pointers, 3837// we need this to count grab pointers,
3874// especially at startup, where we can drag/resize while starting 3838// especially at startup, where we can drag/resize while starting