Tk Source Code

Check-in [a055a4fa]
Login

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

Overview
Comment:Make Tcl_Finalize run when a launched app is terminated with command-Q
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | bug-c2483bfe4b
Files: files | file ages | folders
SHA3-256: a055a4fa5c686cd4144c822e875c693f97ada4e31a43a7a15f99175977f26057
User & Date: marc_culler 2020-10-20 20:15:00.977
References
2023-12-22
18:16 New ticket [8f92d112] Aqua: custom exit proc is not called when ::tk::mac::Quit is not defined. artifact: e821f181 user: chrstphrchvz
Context
2020-10-20
20:17
Fix [c2483bfe4b] - this should be the last time. check-in: 489304ea user: marc_culler tags: core-8-6-branch
20:15
Make Tcl_Finalize run when a launched app is terminated with command-Q Closed-Leaf check-in: a055a4fa user: marc_culler tags: bug-c2483bfe4b
17:41
Avoid platform-specific conditional compilation where possible. check-in: 4d22e18a user: marc_culler tags: bug-c2483bfe4b
Changes
Unified Diff Ignore Whitespace Patch
Changes to macosx/tkMacOSXHLEvents.c.
566
567
568
569
570
571
572
573
574
575
576
577


578


579

580
581
582
583
584
585
586
 *
 *----------------------------------------------------------------------
 */

static int
ReallyKillMe(
    Tcl_Event *eventPtr,
    int flags)
{
    Tcl_Interp *interp = ((KillEvent *) eventPtr)->interp;
    int quit = Tcl_FindCommand(interp, "::tk::mac::Quit", NULL, 0)!=NULL;
    int code = Tcl_EvalEx(interp, quit ? "::tk::mac::Quit" : "exit", -1, TCL_EVAL_GLOBAL);





    if (code != TCL_OK) {

	/*
	 * Should be never reached...
	 */

	Tcl_BackgroundException(interp, code);
    }
    return 1;







|



|
>
>
|
>
>

>







566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
 *
 *----------------------------------------------------------------------
 */

static int
ReallyKillMe(
    Tcl_Event *eventPtr,
    TCL_UNUSED(int))
{
    Tcl_Interp *interp = ((KillEvent *) eventPtr)->interp;
    int quit = Tcl_FindCommand(interp, "::tk::mac::Quit", NULL, 0)!=NULL;

    if (!quit) {
	Tcl_Exit(0);
    }

    int code = Tcl_EvalEx(interp, "::tk::mac::Quit", -1, TCL_EVAL_GLOBAL);
    if (code != TCL_OK) {

	/*
	 * Should be never reached...
	 */

	Tcl_BackgroundException(interp, code);
    }
    return 1;