diff options
author | fvogel <fvogelnew1@free.fr> | 2020-11-22 19:37:12 (GMT) |
---|---|---|
committer | fvogel <fvogelnew1@free.fr> | 2020-11-22 19:37:12 (GMT) |
commit | 3e674640e93241d57b9ea8f07b2a55b7629dcb89 (patch) | |
tree | e74f629125cf8127ccb80888af3a6615ef67b2a5 /generic/tkPointer.c | |
parent | 48e8b9077922fe4f18c2c36fcd557b5996ef010a (diff) | |
download | tk-3e674640e93241d57b9ea8f07b2a55b7629dcb89.zip tk-3e674640e93241d57b9ea8f07b2a55b7629dcb89.tar.gz tk-3e674640e93241d57b9ea8f07b2a55b7629dcb89.tar.bz2 |
Fix [9e1312f32c]: Delivery of <Enter> event to master after destruction of slave widget
Diffstat (limited to 'generic/tkPointer.c')
-rw-r--r-- | generic/tkPointer.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/generic/tkPointer.c b/generic/tkPointer.c index cc67401..37a2100 100644 --- a/generic/tkPointer.c +++ b/generic/tkPointer.c @@ -243,11 +243,15 @@ Tk_UpdatePointer( /* * Generate Enter/Leave events. If the pointer has crossed window * boundaries, update the current mouse position so we don't generate - * redundant motion events. + * redundant motion events. Do this only if the mouse has moved + * since the last time we looked. */ - if (GenerateEnterLeave(winPtr, x, y, tsdPtr->lastState)) { - tsdPtr->lastPos = pos; + + if (tsdPtr->lastPos.x != x || tsdPtr->lastPos.y != y) { + if (GenerateEnterLeave(winPtr, x, y, tsdPtr->lastState)) { + tsdPtr->lastPos = pos; + } } /* |