On Wed, Aug 16, 2000 at 10:17:14PM +0200, Wilbert Berendsen wrote:
> Today at 3:51pm, Jeff Raven wrote:
>
> > On Wed, Aug 16, 2000 at 07:09:12PM +0200, Wilbert Berendsen wrote:
> >
> > > exit a rxvt window _while_ moving it around causes the position box to
> > > remain on the screen.
> >
> > Hrm. When you attempt to exit the terminal while moving it, does it
> > disappear immediately, or only after you release the mouse button?
> > (Ideally, it should only disappear after the button release.)
>
> It disappears immediately, and the underlying window gets focus and
> B1-Motion events (without releasing the button i can make selections in
> the underlying window (eg another rxvt))
>
> The position box stays visible, sometimes without text on it, and is
> lowered when i move another window. After moving that second window
> and releasing the button, the pos-box disappears, When i move a third
> window everything is back ok.
>
Hmm. Seems like different systems are allowing different sets of
events during pointer grabs. Strange. Anyway, the attached patch
should hopefully fix the problem.
Let me know if it works.
Jeff Raven
diff -urN blackbox-0.61.0/src/Slit.hh blackbox-20000816/src/Slit.hh
--- blackbox-0.61.0/src/Slit.hh Fri Jul 21 21:11:01 2000
+++ blackbox-20000816/src/Slit.hh Wed Aug 16 16:21:11 2000
@@ -120,7 +120,7 @@
public:
Slit(BScreen *);
- ~Slit();
+ virtual ~Slit();
inline const Bool &isOnTop(void) const { return on_top; }
inline const Bool &isHidden(void) const { return hidden; }
diff -urN blackbox-0.61.0/src/Window.cc blackbox-20000816/src/Window.cc
--- blackbox-0.61.0/src/Window.cc Fri Jul 21 21:11:01 2000
+++ blackbox-20000816/src/Window.cc Wed Aug 16 16:21:11 2000
@@ -330,7 +330,10 @@
BlackboxWindow::~BlackboxWindow(void) {
- if (moving || resizing) XUngrabPointer(display, CurrentTime);
+ if (moving || resizing) {
+ screen->hideGeometry();
+ XUngrabPointer(display, CurrentTime);
+ }
if (workspace_number != -1 && window_number != -1)
screen->getWorkspace(workspace_number)->removeWindow(this);