From 6b4b8e405ae17d5004085df03d166cddcc99c11b Mon Sep 17 00:00:00 2001 From: cinap_lenrek Date: Sun, 25 Apr 2021 12:41:20 +0200 Subject: [PATCH] rio: avoid re-triggering clicks on resize/hide/unhide and send wctl when focus is lost --- sys/src/cmd/rio/wind.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sys/src/cmd/rio/wind.c b/sys/src/cmd/rio/wind.c index 6869cb8af..b74f8b8b2 100644 --- a/sys/src/cmd/rio/wind.c +++ b/sys/src/cmd/rio/wind.c @@ -378,6 +378,7 @@ wresize(Window *w, Image *i) w->topped = ++topped; w->resized = TRUE; w->winnameread = FALSE; + w->mc.buttons = 0; /* avoid re-triggering clicks on resize */ w->mouse.counter++; w->wctlready = 1; } @@ -1379,6 +1380,14 @@ wctlmesg(Window *w, int m, Rectangle r, void *p) /* sync with input change from wcurrent()/wuncurrent() */ Channel *c = p; input = recvp(c); + + /* when we lost input, release mouse buttons */ + if(w->mc.buttons){ + w->mc.buttons = 0; + w->mouse.counter++; + } + w->wctlready = 1; + sendp(c, w); } if(w->i==nil || Dx(w->screenr)<=0) -- 2.44.0