// 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;
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);
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; }