From ecf483e0c64d4123e16298464260af5ab6ed3c55 Mon Sep 17 00:00:00 2001 From: fluxgen Date: Sun, 27 Apr 2003 12:31:43 +0000 Subject: fixed workspace warp bug --- src/Window.cc | 41 +++++++++++++++++++++++++---------------- 1 file changed, 25 insertions(+), 16 deletions(-) diff --git a/src/Window.cc b/src/Window.cc index 0e256d1..5c40cc0 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -22,7 +22,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Window.cc,v 1.151 2003/04/27 04:28:03 rathnor Exp $ +// $Id: Window.cc,v 1.152 2003/04/27 12:31:43 fluxgen Exp $ #include "Window.hh" @@ -2321,15 +2321,21 @@ void FluxboxWindow::motionNotifyEvent(XMotionEvent &me) { doSnapping(dx, dy); if (! screen.doOpaqueMove()) { - XDrawRectangle(display, screen.getRootWindow(), screen.rootTheme().opGC(), + XDrawRectangle(display, screen.getRootWindow(), + screen.rootTheme().opGC(), last_move_x, last_move_y, - m_frame.width() + 2*frame().window().borderWidth()-1, - m_frame.height() + 2*frame().window().borderWidth()-1); + m_frame.width() + + 2*frame().window().borderWidth() - 1, + m_frame.height() + + 2*frame().window().borderWidth() - 1); - XDrawRectangle(display, screen.getRootWindow(), screen.rootTheme().opGC(), + XDrawRectangle(display, screen.getRootWindow(), + screen.rootTheme().opGC(), dx, dy, - m_frame.width() + 2*frame().window().borderWidth()-1, - m_frame.height() + 2*frame().window().borderWidth()-1); + m_frame.width() + + 2*frame().window().borderWidth()-1, + m_frame.height() + + 2*frame().window().borderWidth()-1); last_move_x = dx; last_move_y = dy; } else { @@ -2350,7 +2356,8 @@ void FluxboxWindow::motionNotifyEvent(XMotionEvent &me) { startResizing(me.window, me.x, me.y, left); } else if (resizing) { // draw over old rect - XDrawRectangle(display, screen.getRootWindow(), screen.rootTheme().opGC(), + XDrawRectangle(display, screen.getRootWindow(), + screen.rootTheme().opGC(), last_resize_x, last_resize_y, last_resize_w - 1 + 2 * m_frame.window().borderWidth(), last_resize_h - 1 + 2 * m_frame.window().borderWidth()); @@ -2378,7 +2385,8 @@ void FluxboxWindow::motionNotifyEvent(XMotionEvent &me) { } // draw resize rectangle - XDrawRectangle(display, screen.getRootWindow(), screen.rootTheme().opGC(), + XDrawRectangle(display, screen.getRootWindow(), + screen.rootTheme().opGC(), last_resize_x, last_resize_y, last_resize_w - 1 + 2 * m_frame.window().borderWidth(), last_resize_h - 1 + 2 * m_frame.window().borderWidth()); @@ -2469,7 +2477,6 @@ void FluxboxWindow::enterNotifyEvent(XCrossingEvent &ev) { ev.window == m_client->window()) { if ((screen.isSloppyFocus() || screen.isSemiSloppyFocus()) && !isFocused()) { - // check that there aren't any subsequent leave notify events in the // X event queue @@ -2481,7 +2488,6 @@ void FluxboxWindow::enterNotifyEvent(XCrossingEvent &ev) { if ((!sa.leave || sa.inferior) && setInputFocus()) installColormap(True); - } } @@ -2647,15 +2653,18 @@ void FluxboxWindow::stopMoving() { if (! screen.doOpaqueMove()) { - XDrawRectangle(FbTk::App::instance()->display(), screen.getRootWindow(), screen.rootTheme().opGC(), + XDrawRectangle(FbTk::App::instance()->display(), + screen.getRootWindow(), screen.rootTheme().opGC(), last_move_x, last_move_y, - frame().width() + 2*frame().window().borderWidth()-1, - frame().height() + 2*frame().window().borderWidth()-1); + frame().width() + 2*frame().window().borderWidth() - 1, + frame().height() + 2*frame().window().borderWidth() - 1); + moveResize(last_move_x, last_move_y, m_frame.width(), m_frame.height()); + if (workspace_number != getScreen().getCurrentWorkspaceID()) { - screen.reassociateWindow(this, getScreen().getCurrentWorkspaceID(), true); - m_frame.show(); + deiconify(true, false); } + fluxbox->ungrab(); } else moveResize(m_frame.x(), m_frame.y(), m_frame.width(), m_frame.height()); -- cgit v0.11.2