diff options
Diffstat (limited to 'src/Window.cc')
-rw-r--r-- | src/Window.cc | 52 |
1 files changed, 13 insertions, 39 deletions
diff --git a/src/Window.cc b/src/Window.cc index 8c50f39..e29e761 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -2462,6 +2462,14 @@ void FluxboxWindow::motionNotifyEvent(XMotionEvent &me) { | |||
2462 | m_last_resize_x = me.x_root; | 2462 | m_last_resize_x = me.x_root; |
2463 | m_last_resize_y = me.y_root; | 2463 | m_last_resize_y = me.y_root; |
2464 | 2464 | ||
2465 | // undraw rectangle before warping workspaces | ||
2466 | if (!screen().doOpaqueMove()) { | ||
2467 | parent().drawRectangle(screen().rootTheme()->opGC(), | ||
2468 | m_last_move_x, m_last_move_y, | ||
2469 | frame().width() + 2*frame().window().borderWidth()-1, | ||
2470 | frame().height() + 2*frame().window().borderWidth()-1); | ||
2471 | } | ||
2472 | |||
2465 | if (moved_x && screen().isWorkspaceWarping()) { | 2473 | if (moved_x && screen().isWorkspaceWarping()) { |
2466 | unsigned int cur_id = screen().currentWorkspaceID(); | 2474 | unsigned int cur_id = screen().currentWorkspaceID(); |
2467 | unsigned int new_id = cur_id; | 2475 | unsigned int new_id = cur_id; |
@@ -2492,7 +2500,10 @@ void FluxboxWindow::motionNotifyEvent(XMotionEvent &me) { | |||
2492 | XWarpPointer(display, None, me.root, 0, 0, 0, 0, | 2500 | XWarpPointer(display, None, me.root, 0, 0, 0, 0, |
2493 | m_last_resize_x, m_last_resize_y); | 2501 | m_last_resize_x, m_last_resize_y); |
2494 | 2502 | ||
2495 | screen().sendToWorkspace(new_id, this, true); | 2503 | if (screen().doOpaqueMove()) |
2504 | screen().sendToWorkspace(new_id, this, true); | ||
2505 | else | ||
2506 | screen().changeWorkspaceID(new_id, false); | ||
2496 | } | 2507 | } |
2497 | } | 2508 | } |
2498 | 2509 | ||
@@ -2505,12 +2516,7 @@ void FluxboxWindow::motionNotifyEvent(XMotionEvent &me) { | |||
2505 | // dx = current left side, dy = current top | 2516 | // dx = current left side, dy = current top |
2506 | doSnapping(dx, dy); | 2517 | doSnapping(dx, dy); |
2507 | 2518 | ||
2508 | if (! screen().doOpaqueMove()) { | 2519 | if (!screen().doOpaqueMove()) { |
2509 | parent().drawRectangle(screen().rootTheme()->opGC(), | ||
2510 | m_last_move_x, m_last_move_y, | ||
2511 | frame().width() + 2*frame().window().borderWidth()-1, | ||
2512 | frame().height() + 2*frame().window().borderWidth()-1); | ||
2513 | |||
2514 | parent().drawRectangle(screen().rootTheme()->opGC(), | 2520 | parent().drawRectangle(screen().rootTheme()->opGC(), |
2515 | dx, dy, | 2521 | dx, dy, |
2516 | frame().width() + 2*frame().window().borderWidth()-1, | 2522 | frame().width() + 2*frame().window().borderWidth()-1, |
@@ -2874,38 +2880,6 @@ void FluxboxWindow::stopMoving(bool interrupted) { | |||
2874 | FbTk::App::instance()->sync(false); //make sure the redraw is made before we continue | 2880 | FbTk::App::instance()->sync(false); //make sure the redraw is made before we continue |
2875 | } | 2881 | } |
2876 | 2882 | ||
2877 | void FluxboxWindow::pauseMoving() { | ||
2878 | if (screen().doOpaqueMove()) { | ||
2879 | return; | ||
2880 | } | ||
2881 | |||
2882 | parent().drawRectangle(screen().rootTheme()->opGC(), | ||
2883 | m_last_move_x, m_last_move_y, | ||
2884 | frame().width() + 2*frame().window().borderWidth()-1, | ||
2885 | frame().height() + 2*frame().window().borderWidth()-1); | ||
2886 | |||
2887 | } | ||
2888 | |||
2889 | |||
2890 | void FluxboxWindow::resumeMoving() { | ||
2891 | if (screen().doOpaqueMove()) { | ||
2892 | return; | ||
2893 | } | ||
2894 | |||
2895 | if (m_workspace_number == screen().currentWorkspaceID()) { | ||
2896 | frame().show(); | ||
2897 | focus(); | ||
2898 | } | ||
2899 | |||
2900 | FbTk::App::instance()->sync(false); | ||
2901 | |||
2902 | parent().drawRectangle(screen().rootTheme()->opGC(), | ||
2903 | m_last_move_x, m_last_move_y, | ||
2904 | frame().width() + 2*frame().window().borderWidth()-1, | ||
2905 | frame().height() + 2*frame().window().borderWidth()-1); | ||
2906 | |||
2907 | } | ||
2908 | |||
2909 | /** | 2883 | /** |
2910 | * Helper function that snaps a window to another window | 2884 | * Helper function that snaps a window to another window |
2911 | * We snap if we're closer than the x/ylimits. | 2885 | * We snap if we're closer than the x/ylimits. |