when a window begins moving, make sure another window is not moving already, and if it is, end its move
This commit is contained in:
parent
f4d29bb737
commit
0be1c1e8d7
2 changed files with 8 additions and 6 deletions
|
@ -1472,12 +1472,6 @@ void OpenboxWindow::deiconify(bool reassoc, bool raise, bool initial) {
|
|||
// after the window is mapped, we need to start interactively moving it
|
||||
if (initial && place_window &&
|
||||
screen->placementPolicy() == BScreen::ClickMousePlacement) {
|
||||
// if the last window wasn't placed yet, or we're just moving a window
|
||||
// already, finish off that move cleanly
|
||||
OpenboxWindow *w = openbox.getFocusedWindow();
|
||||
if (w != (OpenboxWindow *) 0 && w->flags.moving)
|
||||
w->endMove();
|
||||
|
||||
int x, y, rx, ry;
|
||||
Window c, r;
|
||||
unsigned int m;
|
||||
|
@ -2759,6 +2753,12 @@ void OpenboxWindow::buttonReleaseEvent(XButtonEvent *re) {
|
|||
void OpenboxWindow::startMove(int x, int y) {
|
||||
ASSERT(!flags.moving);
|
||||
|
||||
// make sure only one window is moving at a time
|
||||
OpenboxWindow *w;
|
||||
if ((w = openbox.getMaskedWindow()) != (OpenboxWindow *) 0 &&
|
||||
w->flags.moving)
|
||||
w->endMove();
|
||||
|
||||
XGrabPointer(display, frame.window, False, PointerMotionMask |
|
||||
ButtonReleaseMask, GrabModeAsync, GrabModeAsync,
|
||||
None, openbox.getMoveCursor(), CurrentTime);
|
||||
|
|
|
@ -172,6 +172,8 @@ public:
|
|||
inline const unsigned long &getCacheMax() const
|
||||
{ return resource.cache_max; }
|
||||
|
||||
inline OpenboxWindow *getMaskedWindow() const
|
||||
{ return masked_window; }
|
||||
inline void maskWindowEvents(Window w, OpenboxWindow *bw)
|
||||
{ masked = w; masked_window = bw; }
|
||||
inline void setNoFocus(Bool f) { no_focus = f; }
|
||||
|
|
Loading…
Reference in a new issue