Tk Source Code

Timeline
Login

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

50 most recent check-ins

2026-09-26
21:01
Make tests pass without a window manager (e.g. on GitHub CI) and remove unneeded failsOnCILinux and failsOnXQuartz constraints.

* pack-18.1.1, pack-18.2, place-8.1, place-8.2, winfo-9.4, winfo-9.7, unixWm-42.1 and wm-forget-1.5 use "wm withdraw" instead of "wm iconify" to unmap the toplevel: on X11 iconifying is done by the window manager, without one the window stays mapped. wm-forget-1.5 also places the toplevel away from the screen origin, since it checks that [winfo rooty] is not 0. * unixEmbed-8.1 moves the pointer away from its windows: without a window manager the focus follows the pointer. * canvas-8.1, select-9.2..9.4, select-10.4..10.6, select-11.1, select-13.1 and unixWm-50.9 pass without these constraints. leaf check-in: b8726ecb user: serhiy.storchaka tags: tests-without-wm, core-tests-without-wm

20:19
Fix [853398ffff]: unixEmbed-5.1 failed sporadically, because the child process returned the result before handling the FocusIn event. Process pending events first, as in unixEmbed-5.3. leaf check-in: 9764b127 user: serhiy.storchaka tags: embed-focusin-test
20:12
Fix [4a25f316f7]: an embedded application exited with BadDrawable when its container was destroyed while it had pending drawing. ErrorProc() now ignores BadDrawable errors like BadWindow errors, also for windows deleted after the failed request (this check was lost in 8.6 together with the XID management). Recently deleted windows are recorded in the new field deletedWinTable at the end of TkDisplay. New test unixEmbed-9.3. leaf check-in: d6f016b5 user: serhiy.storchaka tags: embed-container-destroyed
18:23
Merge font-test-deferred-free. This is a better testcase fix leaf check-in: b4093944 user: jan.nijtmans tags: core-8-6-branch
18:21
Merge font-test-deferred-free. This is a better testcase fix leaf check-in: 358e42dd user: jan.nijtmans tags: core-9-0-branch
18:19
Merge font-test-deferred-free. This is a better testcase fix leaf check-in: d1f3368e user: jan.nijtmans tags: trunk, main
18:05
Backport test fixes from trunk check-in: 8d4d9b33 user: jan.nijtmans tags: core-9-0-branch
17:52
Merge textdisp-bbox-test-macos and send-late-x-errors branches, both test fixes only. textDisp-25.2 still fails with --disable-aqua, therefore - for now - marked nonportable. See: https://github.com/nijtmans/tk/actions/runs/36259052664/job/108451236976. Fix font-17.5 testcase, due to different expectation. check-in: db7cd226 user: jan.nijtmans tags: trunk, main
17:48
Fix [c81e0ccee2]: a named font was not used by widgets that referred to its name before it was created. Fonts cached under the name are now converted to the new named font. This also fixes a side effect of [8da7af2f8e]: an unused font cached under the name, kept until idle time, shadowed the new named font. Patch by Christian Werner, test by Harald Oehlmann. leaf check-in: 9fc3317c user: serhiy.storchaka tags: named-font-late-creation
17:30
Fix tests after [8da7af2f8e]: font-17.5 failed on macOS because the unused font of a deleted named font is now kept until idle time. Rename the duplicate test font-17.2 to font-17.1.1. closed check-in: 0e551c58 user: serhiy.storchaka tags: font-test-deferred-free
13:09
Make textDisp-25.2 independent of font measure: check that the bbox of each character ends where the next one begins. It failed on macOS for the space after the comma, where the bbox width differed from the width measured separately. closed check-in: dcc48be6 user: serhiy.storchaka tags: textdisp-bbox-test-macos
12:37
Remove failsOnCILinux and failsOnXQuartz from focus-5.1, which now passes. closed check-in: 1006a758 user: serhiy.storchaka tags: focus-test-xfocus
12:36
Remove failsOnCILinux and failsOnXQuartz from focus-2.6, 2.7, 2.9 and 5.1, which now pass. leaf check-in: a1a86212 user: serhiy.storchaka tags: focus-test-wrapper-events
12:12
Fix [729f9c8092]: send to a dead application returned "target application died" after 2 seconds instead of "no application named". Revert the part of [1602306bfc] which prevented calling the callbacks of deleted error handlers, contrary to the documentation, and fix the cause of [f52986c698] instead: the font code passed the address of a local variable to an error handler which could be called after the function returned. Now the flag is in thread-specific data. In send, call XSync() before deleting the error handler for synchronous sends, and do not overwrite a response set by AppendErrorProc() while waiting. Remove failsOnCILinux and failsOnXQuartz from send-8.15 and send-8.16. leaf check-in: 94dc6de2 user: serhiy.storchaka tags: send-late-x-errors
2026-09-25
21:47
Fix [1474465]: focus test failures. Alternative to branch focus-test-wrapper-events that changes only the tests. Add test command testxfocus, which sets and returns the input focus of the X server. Tests focus-2.6, 2.7 and 2.9 use it to move the real X focus instead of generating FocusIn/FocusOut events, which do not change the focus since [185b0e79ee]. focusClear sets the X focus to None if the window manager refuses to give the focus to another application or gives it back later. focus-5.1 needed an update after the send. check-in: 1bec8aab user: serhiy.storchaka tags: focus-test-xfocus
19:04
Eliminated the compiler error raised in generic/tkMenuDraw.c. check-in: 0dd5f4b1 user: csaba tags: core-8-6-branch
19:02
Eliminated the compiler error raised in generic/tkMenuDraw.c. check-in: 4fb63b0b user: csaba tags: core-9-0-branch
17:47
Fix for [8da7af2f8e]: slow widget creation if default font is not used. check-in: ad904e13 user: csaba tags: core-8-6-branch
17:35
merge trunk leaf check-in: 709e05ee user: dgp tags: rc0, core-9-1-0-rc
17:22
Fix [2effa4b316]: window is not focused on create check-in: c91229e8 user: jan.nijtmans tags: core-8-6-branch
17:20
Fix [2effa4b316]: window is not focused on create check-in: 6ead31f3 user: jan.nijtmans tags: core-9-0-branch
17:16
More bools in tkFont.c check-in: bd65081b user: jan.nijtmans tags: trunk, main
17:12
merge trunk check-in: ee9a77aa user: dgp tags: core-9-1-0-rc
17:09
Fix [2effa4b316]: window is not focused on create check-in: 891bf6ca user: jan.nijtmans tags: trunk, main
17:02
Fix [b9d85fc100]: X11 accessibility: root accessible is not registered with ATK. Tk defined its own global atk_get_root(), relying on symbol interposition to override the function in libatk. This does not work where libatk-bridge binds directly to libatk (illumos), so the bridge got no root object, printed "runtime check failed: (root)" and the application was not visible to assistive technologies. Set get_root, get_toolkit_name and get_toolkit_version in the AtkUtil class before initializing the bridge, as GTK does. leaf check-in: df6cd07c user: serhiy.storchaka tags: atk-util-get-root
16:48
Fix for [8da7af2f8e]: slow widget creation if default font is not used. check-in: 459cb7dc user: csaba tags: core-9-0-branch
16:39
Fix for [8da7af2f8e]: slow widget creation if default font is not used. check-in: 37a74c33 user: csaba tags: trunk, main
16:33
Fix [434c8dd804]: crash in Tk_ConfigureWidget when a default value of a canvas item option is invalid. The error message used specPtr->dbName, which is NULL for canvas item options; use the option name instead. This happened, for example, when fontconfig finds no fonts. leaf check-in: dc715711 user: serhiy.storchaka tags: canvas-default-error-crash
15:41
Fix crash caused by double free of menu GC check-in: a6d19b74 user: jan.nijtmans tags: core-9-0-branch
15:39
Fix [791527]: menu entries are drawn directly on the screen (storchaka). Also fix a crash caused by double free of menu GC. check-in: 8448bec5 user: jan.nijtmans tags: core-8-6-branch
15:29
Fix [791527]: menu entries are drawn directly on the screen check-in: 9245cab7 user: jan.nijtmans tags: core-9-0-branch
15:26
Fix [791527]: menu entries are drawn directly on the screen check-in: 0e6c3431 user: jan.nijtmans tags: trunk, main
15:09
Fix [5d52ad92fa]: creating widgets is slow when an input method is active check-in: 7345531f user: jan.nijtmans tags: core-9-0-branch
14:50
Fix [1dfc71ae4a]: configure fails without HarfBuzz although --enable-bidi was not given. Unless --enable-bidi is given explicitly, a missing, too old or unusable HarfBuzz now only disables Bidi with a warning, as a too old one did before; with --enable-bidi it is an error which mentions --disable-bidi. HAVE_BIDI, the Bidi flags and font objects are now set only after HarfBuzz was found usable; before, a build with a too old HarfBuzz still defined HAVE_BIDI with the non-Bidi font code. Regenerated configure with autoconf 2.73. leaf check-in: b83a8093 user: serhiy.storchaka tags: configure-bidi-without-harfbuzz
14:23
Fix [130949dafe]: build fails without zip: no rule to make minizip. The autoconf builds (unix and MinGW) used an external zip program to create the Tk library archive, with a fallback to minizip, but Tk's Makefiles never had a rule to build minizip. Create the archive with "zipfs mkzip" of Tcl 9, as makefile.vc has done since zip embedding was added ([30d0843b21]). The tclsh of the Tcl build directory or of the installed Tcl is used; TCLSH_NATIVE can be set to a host tclsh for cross-compiling. For static builds, tcl_library is copied from the archive of the static tclsh. This also removes the use of "find -empty", which Solaris find does not support. leaf check-in: d399f15e user: serhiy.storchaka tags: unix-zipfs-mkzip
14:13
Fix [5d52ad92fa]: creating widgets is slow when an input method is active check-in: e978f0d4 user: jan.nijtmans tags: trunk, main
14:08
Fix [7579c335f1]: Text widget: wrong bbox widths for non-ASCII characters with bidi text rendering check-in: 5299492c user: jan.nijtmans tags: trunk, main
13:02
Fix [9087fae43f]: configure: X11 header check always fails check-in: bf45f48c user: jan.nijtmans tags: trunk, main
13:01
Fix [9087fae43f]: configure: X11 header check always fails check-in: 14087b62 user: jan.nijtmans tags: core-9-0-branch
12:51
Update changes file check-in: aa39c896 user: jan.nijtmans tags: core-8-6-branch
12:43
Use more bools internally check-in: 995c9eec user: jan.nijtmans tags: trunk, main
11:35
Fix [9087fae43f]: configure: X11 header check always fails because CPP is not set. Since the stdlib.h checks were removed in [b830ddb20c], AC_PROG_CPP was only expanded inside the fd_set check, which is skipped on current systems, so SC_PATH_X ran the preprocessor check with an empty CPP and printed "couldn't find any!". Call AC_PROG_CPP right after AC_PROG_CC. Regenerated configure with autoconf 2.73. closed check-in: 78b2122a user: serhiy.storchaka tags: configure-prog-cpp
11:09
Merge trunk leaf check-in: 531fbdcc user: jan.nijtmans tags: tip-748
10:56
Fix [1954237]: double click is lost if processing a click takes too long. Fix [2148529]: canvas scrolls when the scrollbar indicates that it cannot. Backport of [6498c68552] from 9.0 and 9.1: on Windows the time of a mouse or key event was the time at which the message was processed, not the time at which it was posted, so if a binding script ran longer than the double click time, the events of the second click got too late times and no <Double-1> event was generated. A new TkpGetEventTime() returns GetMessageTime() on Windows and the current time on macOS. check-in: 1f958e6c user: serhiy.storchaka tags: core-8-6-branch
10:44
Fix [0ec9336873bc987c] followup: Make --disable-bidi compile/work again. check-in: 808a0c7a user: jan.nijtmans tags: trunk, main
10:28
Fix [1954237]: double click is lost if processing a click takes too long. Fix [2148529]: canvas scrolls when the scrollbar indicates that it cannot check-in: 3a1b43c4 user: jan.nijtmans tags: core-9-0-branch
10:20
Fix [3138512]: an application with a global grab could not be restored from the taskbar after "show desktop". The mouse capture set by the global grab stops Windows from restoring the minimized window. Release the capture on SC_RESTORE; Tk sets it again on the next pointer event. testwinevent now accepts WM_SYSCOMMAND; new test winWm-9.3. leaf check-in: ba25235a user: serhiy.storchaka tags: win-global-grab-restore
10:18
Tests for [2814003]: new test winMsgbox-4.1 checks that the mouse capture of a global grab is restored after a native message box (with the new testgetcapture command), and msgbox-4.1 checks that the global grab is restored after a Tk message box. leaf check-in: fff2ed5d user: serhiy.storchaka tags: win-dialog-release-capture
09:50
Fix [1954237]: double click is lost if processing a click takes too long. Fix [2148529]: canvas scrolls when the scrollbar indicates that it cannot check-in: 2535a940 user: jan.nijtmans tags: trunk, main
09:00
Fix [d5d7f548bd]: option readfile handles backslash-space and backslash-tab as in the X11 resource file syntax.

Replace "\ " and "\<tab>" anywhere in the value again, as Xlib does, instead of only one at the start (the special case added for [766ef52f31]). Values which contain backslashes, like Tcl lists, must be escaped when written to the file; this is now documented. Octal escapes accept only octal digits. leaf check-in: 7b80bfa5 user: serhiy.storchaka tags: option-readfile-x11-escapes