summaryrefslogtreecommitdiffstats
path: root/src/cmd/rio/event.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/rio/event.c')
-rw-r--r--src/cmd/rio/event.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/cmd/rio/event.c b/src/cmd/rio/event.c
index 45642774..457153df 100644
--- a/src/cmd/rio/event.c
+++ b/src/cmd/rio/event.c
@@ -282,6 +282,7 @@ newwindow(XCreateWindowEvent *e)
void
destroy(Window w)
{
+ int i;
Client *c;
curtime = CurrentTime;
@@ -289,6 +290,11 @@ destroy(Window w)
if(c == 0)
return;
+ if(numvirtuals > 1)
+ for(i=0; i<numvirtuals; i++)
+ if(currents[i] == c)
+ currents[i] = 0;
+
rmclient(c);
/* flush any errors generated by the window's sudden demise */
@@ -470,12 +476,14 @@ enter(XCrossingEvent *e)
Client *c;
curtime = e->time;
+ if(!ffm)
if(e->mode != NotifyGrab || e->detail != NotifyNonlinearVirtual)
return;
c = getclient(e->window, 0);
if(c != 0 && c != current){
/* someone grabbed the pointer; make them current */
- XMapRaised(dpy, c->parent);
+ if(!ffm)
+ XMapRaised(dpy, c->parent);
top(c);
active(c);
}