Tk Source Code

Check-in [e13e643a]
Login
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to [email protected]
or submit via the online form by Sep 9.

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix [75b8fbfd77]: Segfault with [event generate] sequence outside grabbed window
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | core-8-6-branch
Files: files | file ages | folders
SHA3-256: e13e643ac650c098ecf41a362a93a79a89136ffea93a982e1f6d48a4b3565a71
User & Date: fvogel 2019-06-15 13:52:04
Context
2019-06-15
20:02
TIP 536: Improvements to Mac-specific IPC check-in: ded88b70 user: dkf tags: core-8-6-branch
13:52
Fix [75b8fbfd77]: Segfault with [event generate] sequence outside grabbed window check-in: 3274bb0d user: fvogel tags: trunk
13:52
Fix [75b8fbfd77]: Segfault with [event generate] sequence outside grabbed window check-in: e13e643a user: fvogel tags: core-8-6-branch
2019-06-14
16:28
Fix bug [436ad6fe5f]: wm manage command broken in 8.6.9. check-in: c4c67277 user: culler tags: core-8-6-branch
2019-06-09
21:15
Change the fix (see details in ticket [75b8fbfd77]) Closed-Leaf check-in: ec435697 user: fvogel tags: bug-75b8fbfd77
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to generic/tkGrab.c.

877
878
879
880
881
882
883

884
885
886
887
888
889
890
891
892
			}
		    }
		}
		dispPtr->buttonWinPtr = winPtr;
		return 1;
	    }
	} else {

	    if ((eventPtr->xbutton.state & ALL_BUTTONS)
		    == buttonStates[eventPtr->xbutton.button - Button1]) {
		ReleaseButtonGrab(dispPtr);			/* Note 4. */
	    }
	}
	if (winPtr2 != winPtr) {
	    TkChangeEventWindow(eventPtr, winPtr2);
	    Tk_QueueWindowEvent(eventPtr, TCL_QUEUE_HEAD);
	    return 0;						/* Note 3. */






>
|
|







877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
			}
		    }
		}
		dispPtr->buttonWinPtr = winPtr;
		return 1;
	    }
	} else {
	    if (eventPtr->xbutton.button != AnyButton &&
		    ((eventPtr->xbutton.state & ALL_BUTTONS)
		    == buttonStates[eventPtr->xbutton.button - Button1])) {
		ReleaseButtonGrab(dispPtr);			/* Note 4. */
	    }
	}
	if (winPtr2 != winPtr) {
	    TkChangeEventWindow(eventPtr, winPtr2);
	    Tk_QueueWindowEvent(eventPtr, TCL_QUEUE_HEAD);
	    return 0;						/* Note 3. */