From 99eaded40eadcbb3b3f3c30bf02a99d413a99751 Mon Sep 17 00:00:00 2001 From: Mark Tiefenbruck <mark@fluxbox.org> Date: Thu, 21 Aug 2008 10:17:21 -0700 Subject: make Swing apps only somewhat horribly broken again --- src/FbWinFrame.cc | 6 ------ src/Window.cc | 62 ++++++++++++------------------------------------------- src/Window.hh | 4 +--- 3 files changed, 14 insertions(+), 58 deletions(-) diff --git a/src/FbWinFrame.cc b/src/FbWinFrame.cc index da6fd74..284a1b5 100644 --- a/src/FbWinFrame.cc +++ b/src/FbWinFrame.cc @@ -880,12 +880,6 @@ void FbWinFrame::reconfigure() { gravityTranslate(grav_x, grav_y, -sizeHints().win_gravity, m_active_orig_client_bw, false); m_bevel = theme()->bevelWidth(); - setBorderWidth(); - - if (useHandle() && theme()->handleWidth() != 0) - showHandle(); - else - hideHandle(); unsigned int orig_handle_h = handle().height(); if (m_use_handle && orig_handle_h != theme()->handleWidth()) 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() { fluxbox.saveWindowSearchGroup(frame().window().window(), this); fluxbox.saveWindowSearchGroup(frame().tabcontainer().window(), this); - frame().resize(m_client->width(), m_client->height()); - m_workspace_number = m_screen.currentWorkspaceID(); // set default decorations but don't apply them @@ -619,11 +617,7 @@ void FluxboxWindow::attachClient(WinClient &client, int x, int y) { // reparent window to this frame().setClientWindow(**client_it); - moveResizeClient(**client_it, - frame().clientArea().x(), - frame().clientArea().y(), - frame().clientArea().width(), - frame().clientArea().height()); + moveResizeClient(**client_it); // create a labelbutton for this client and // associate it with the pointer @@ -645,11 +639,7 @@ void FluxboxWindow::attachClient(WinClient &client, int x, int y) { } else { // client.fbwindow() == 0 associateClient(client); - moveResizeClient(client, - frame().clientArea().x(), - frame().clientArea().y(), - frame().clientArea().width(), - frame().clientArea().height()); + moveResizeClient(client); // right now, this block only happens with new windows or on restart bool is_startup = Fluxbox::instance()->isStartup(); @@ -2870,8 +2860,8 @@ void FluxboxWindow::update(FbTk::Subject *subj) { setFullscreenLayer(); } } else if (subj == &m_theme.reconfigSig()) { - frame().reconfigure(); - reconfigTheme(); + frame().applyDecorations(); + sendConfigureNotify(); } else if (m_initialized && subj == &m_frame.frameExtentSig()) { Fluxbox::instance()->updateFrameExtents(*this); sendConfigureNotify(); @@ -3598,15 +3588,16 @@ void FluxboxWindow::fixsize() { } } -void FluxboxWindow::moveResizeClient(WinClient &client, int x, int y, - unsigned int height, unsigned int width) { - client.moveResize(x, y, - frame().clientArea().width(), - frame().clientArea().height()); - client.sendConfigureNotify(frame().x() + frame().clientArea().x() + frame().window().borderWidth(), - frame().y() + frame().clientArea().y() + frame().window().borderWidth(), +void FluxboxWindow::moveResizeClient(WinClient &client) { + client.moveResize(frame().clientArea().x(), frame().clientArea().y(), frame().clientArea().width(), frame().clientArea().height()); + client.sendConfigureNotify(frame().x() + frame().clientArea().x() + + frame().window().borderWidth(), + frame().y() + frame().clientArea().y() + + frame().window().borderWidth(), + frame().clientArea().width(), + frame().clientArea().height()); } void FluxboxWindow::sendConfigureNotify() { @@ -3619,11 +3610,7 @@ void FluxboxWindow::sendConfigureNotify() { of the client window is. (ie frame pos + client pos inside the frame = send pos) */ //!! - moveResizeClient(client, - frame().clientArea().x(), - frame().clientArea().y(), - frame().clientArea().width(), - frame().clientArea().height()); + moveResizeClient(client); } // end for @@ -3846,29 +3833,6 @@ void FluxboxWindow::updateButtons() { frame().reconfigure(); } -/** - * reconfigTheme: must be called after frame is reconfigured - * Client windows need to be made the same size and location as - * the frame's client area. - */ -void FluxboxWindow::reconfigTheme() { - - ClientList::iterator it = clientList().begin(); - ClientList::iterator it_end = clientList().end(); - - int x = m_frame.clientArea().x(), - y = m_frame.clientArea().y(); - - unsigned int width = m_frame.clientArea().width(), - height = m_frame.clientArea().height(); - - for (; it != it_end; ++it) { - (*it)->moveResize(x, y, width, height); - } - - sendConfigureNotify(); -} - // grab pointer and increase counter. // we need this to count grab pointers, // especially at startup, where we can drag/resize while starting diff --git a/src/Window.hh b/src/Window.hh index 14f063a..5cf755e 100644 --- a/src/Window.hh +++ b/src/Window.hh @@ -471,8 +471,6 @@ public: const FbTk::Subject &workspaceSig() const { return m_workspacesig; } /** @} */ // end group signals - void reconfigTheme(); - //@} class WinSubject: public FbTk::Subject { @@ -518,7 +516,7 @@ private: void doSnapping(int &left, int &top); // user_w/h return the values that should be shown to the user void fixsize(); - void moveResizeClient(WinClient &client, int x, int y, unsigned int width, unsigned int height); + void moveResizeClient(WinClient &client); /// sends configurenotify to all clients void sendConfigureNotify(); -- cgit v0.11.2