drag modes: exit the mode if grabs fail
authorAndrew Chadwick <andrewc-git@piffle.org>
Fri, 30 Nov 2012 13:01:21 +0000 (13:01 +0000)
committerAndrew Chadwick <andrewc-git@piffle.org>
Fri, 30 Nov 2012 13:01:21 +0000 (13:01 +0000)
commit57bcd033bc0db08bb54d894ae673f8c0d32a5c51
tree7c34d6fe89a3b8c0e81edde28d6e5fb217b45cc6
parent775dec1844b0f26e7c50ad73ee9372628aa04cb4
drag modes: exit the mode if grabs fail

Another attempt at fixing https://gna.org/bugs/?20068

Falling back to the mode's passive state is proving confusing and
potentially annoying. These conditions should be rare enough for popping
the mode stack to be a valid approach if grabs fail.

Code tidyups: less silly names for the start/stop methods. Ungrabbing
won't work because the conflicting grabs are evidently external to the
app, so remove that attempted workaround. Exclude double and triple
clicks from starting grabs (shouldn't be an issue, but we'll see).  The
keypress handler is now are now fully responsible for starting its drag,
so never start one in a motion handler and clean up test. Eat all motion
events in a grab.
gui/canvasevent.py