From 58999c1d3b468e268278875aa34cb9c93068263b Mon Sep 17 00:00:00 2001 From: fvogel Date: Sun, 9 Jun 2019 13:24:50 +0000 Subject: Fix [75b8fbfd77]: Segfault with [event generate] sequence outside grabbed window --- generic/tkGrab.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/generic/tkGrab.c b/generic/tkGrab.c index 5ea2906..ade730e 100644 --- a/generic/tkGrab.c +++ b/generic/tkGrab.c @@ -881,8 +881,9 @@ TkPointerEvent( return 1; } } else { - if ((eventPtr->xbutton.state & ALL_BUTTONS) - == buttonStates[eventPtr->xbutton.button - Button1]) { + if (eventPtr->xbutton.button == AnyButton || + ((eventPtr->xbutton.state & ALL_BUTTONS) + == buttonStates[eventPtr->xbutton.button - Button1])) { ReleaseButtonGrab(dispPtr); /* Note 4. */ } } -- cgit v0.12 From d1f8383cee18d1bb8d228018c7af12595667d643 Mon Sep 17 00:00:00 2001 From: fvogel Date: Sun, 9 Jun 2019 21:15:42 +0000 Subject: Change the fix (see details in ticket [75b8fbfd77]) --- generic/tkGrab.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generic/tkGrab.c b/generic/tkGrab.c index ade730e..21c06a9 100644 --- a/generic/tkGrab.c +++ b/generic/tkGrab.c @@ -881,7 +881,7 @@ TkPointerEvent( return 1; } } else { - if (eventPtr->xbutton.button == AnyButton || + if (eventPtr->xbutton.button != AnyButton && ((eventPtr->xbutton.state & ALL_BUTTONS) == buttonStates[eventPtr->xbutton.button - Button1])) { ReleaseButtonGrab(dispPtr); /* Note 4. */ -- cgit v0.12