summaryrefslogtreecommitdiffstats
path: root/generic/tkPointer.c
diff options
context:
space:
mode:
authorfvogel <fvogelnew1@free.fr>2020-11-22 19:37:12 (GMT)
committerfvogel <fvogelnew1@free.fr>2020-11-22 19:37:12 (GMT)
commit3e674640e93241d57b9ea8f07b2a55b7629dcb89 (patch)
treee74f629125cf8127ccb80888af3a6615ef67b2a5 /generic/tkPointer.c
parent48e8b9077922fe4f18c2c36fcd557b5996ef010a (diff)
downloadtk-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.c10
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;
+ }
}
/*