all repos — openbox @ 0be1c1e8d72f5c5d8ef73c5c6a924e1f540a205a

openbox fork - make it a bit more like ryudo

when a window begins moving, make sure another window is not moving already, and if it is, end its move
Dana Jansens danakj@orodu.net
commit

0be1c1e8d72f5c5d8ef73c5c6a924e1f540a205a

parent

f4d29bb737631dfd085646283b7620ef863303bf

2 files changed, 8 insertions(+), 6 deletions(-)

jump to
M src/Window.ccsrc/Window.cc

@@ -1472,12 +1472,6 @@ // if we're using the click to place placement type, then immediately

// 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::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);
M src/openbox.hsrc/openbox.h

@@ -172,6 +172,8 @@ { return resource.cache_life; }

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