Tk Source Code

Timeline
Login

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

50 most recent check-ins

2026-10-16
08:00
canvText-22.1: measure parts of the text instead of multiplying the width of one character, and shape the text.

The advance width can be fractional (on Aqua), and the width of one character is rounded, so the test scrolled past the end of the text [271f61c768]. A leading CJK character makes the whole text shaped, so the test also covers the 512-glyph limit of the shaper [4eef1fa86e]; the text is measured in parts shorter than 512 characters. Remove the aquaKnownBug constraint. leaf check-in: 6a518b37 user: serhiy.storchaka tags: canvtext-long-text-test

01:31
Fix for [7ee755115a] leaf check-in: c7fbd693 user: kevin_walzer tags: wayland
01:26
Fix for [19d254f6a8] check-in: 17920bcb user: kevin_walzer tags: wayland
01:20
Fix for [42ac1fa6fc] check-in: 14c4a87f user: kevin_walzer tags: wayland
01:11
Fix for [c55e243c32] check-in: 60aa4fcd user: kevin_walzer tags: wayland
01:07
Fix for [d10852997] check-in: 6ae9731a user: kevin_walzer tags: wayland
01:00
Fix for [2c50e36aa] check-in: 1821fe89 user: kevin_walzer tags: wayland
2026-10-15
23:42
Fix a focus issue with new toplevels. leaf check-in: f827bb16 user: culler tags: tip_765, core-tip_765
22:52
Merge main and make all tests pass robustly, including event-9.11-9.20 check-in: 4b2d5b31 user: culler tags: tip_765
18:51
Fix for [3e52336b74] check-in: 8feceaad user: kevin_walzer tags: wayland
18:12
Fix for [ee41ed8650] check-in: 040ed3cc user: kevin_walzer tags: wayland
17:38
Fix for [131ac2d78d] check-in: c1ef2785 user: kevin_walzer tags: wayland
17:30
Fix for [2651b8f742] check-in: 22e01b1d user: kevin_walzer tags: wayland
17:25
Fix constraint lists which mix ! with other constraints.

Tcltest evaluates such a list as an expression, so {unix !wayland} is an invalid expression and the test was skipped everywhere. Write them as {unix && !wayland}. leaf check-in: 9d2205ca user: serhiy.storchaka tags: wayland-test-constraints

17:25
Wayland: wm state follows Aqua.

Accept iconic, normal, withdrawn and zoomed, with the error message of Aqua; "icon" is only reported. Run the Aqua variant of the test, unixWm-35.1.2, on Wayland. leaf check-in: 38329c15 user: serhiy.storchaka tags: wayland-wm-state

16:42
Rebase to main leaf check-in: 9c0738ec user: serhiy.storchaka tags: win-wide-polyline-pieces
16:42
Rebase to main leaf check-in: 40272311 user: serhiy.storchaka tags: win-thin-line-endpoints
16:42
Rebase to main leaf check-in: 8d61ec7f user: serhiy.storchaka tags: win-popup-phantom-events
16:42
Rebase to main leaf check-in: d05dfe59 user: serhiy.storchaka tags: win-mouseactivate-foreign-toplevel
16:42
Rebase to main leaf check-in: 7e263169 user: serhiy.storchaka tags: win-mono-image
16:42
Rebase to main leaf check-in: b37d073b user: serhiy.storchaka tags: win-canvas-arc-stipple
16:42
Rebase to main leaf check-in: c6891c47 user: serhiy.storchaka tags: unix-zipfs-mkzip
16:42
Rebase to main leaf check-in: b4d7bf8c user: serhiy.storchaka tags: text-metrics-idle-wait
16:42
Rebase to main leaf check-in: fa3d0643 user: serhiy.storchaka tags: tests-platform-constraints
16:42
Rebase to main leaf check-in: cc79468d user: serhiy.storchaka tags: photo-transparency-set-alpha
16:42
Rebase to main leaf check-in: f60bb151 user: serhiy.storchaka tags: panedwindow-sash-cursor
16:42
Rebase to main leaf check-in: bd3b7514 user: serhiy.storchaka tags: named-font-late-creation
16:42
Rebase to main leaf check-in: 6177d38f user: serhiy.storchaka tags: embed-container-destroyed-pixmap
16:21
Fix [451cb358d9]: LastKnownRequestProcessed() assigned to unsigned int leaf check-in: e0fcdf0c user: jan.nijtmans tags: trunk, main
16:10
Wayland: also remove the stale reply queues of send, /tkreply_<pid>_<serial>. leaf check-in: 735b0e92 user: serhiy.storchaka tags: wayland-send-queue-cleanup
16:10
Wayland: name the reply queue of send after the process and the request.

Message queue names are global to the system, but application names are only unique in the registry of a user, so two applications could use the same reply queue and take each other's reply. leaf check-in: 210e7940 user: serhiy.storchaka tags: wayland-send-errors

16:10
Wayland: a 32-bit XImage stores the pixels in the byte order of X11.

The pixels were stored as red, green, blue, alpha, while the XImage declares LSBFirst and the masks of the visual; the canvas image command reads the bytes directly and swapped red and blue. Store 0xRRGGBB in LSBFirst order, and convert in XPutImage() for TkpPutRGBAImage(). leaf check-in: 4339ea65 user: serhiy.storchaka tags: wayland-getimage-pixels

16:10
Wayland: draw lines as on X11.

Shift lines of odd width by half a pixel, so that they go through the centers of the pixels instead of being blurred over two rows or columns. Implement XDrawLine(), which was an empty stub (e.g. the dotted focus rectangle was not drawn), fix CoordModePrevious in XDrawLines(), and let XDrawRectangle() draw a line for a zero width or height. leaf check-in: 2f0b8b48 user: serhiy.storchaka tags: wayland-line-drawing

15:57
Fix [451cb358d9]: LastKnownRequestProcessed() assigned to unsigned int leaf check-in: 04c307e8 user: jan.nijtmans tags: core-9-0-branch
15:26
Wayland: constrain focus-1.19 (testxfocus) and textTag-18.1 (pointerWarp).

On Wayland another application cannot take the focus away, and there is no testxfocus command. check-in: d2d51e08 user: serhiy.storchaka tags: wayland-test-constraints

15:25
Wayland: a withdrawn toplevel is resized at once, as on X11.

TopLevelReqProc() scheduled UpdateGeometryInfo() only for a mapped window, and UpdateGeometryInfo() did nothing for a hidden one, so the children of a withdrawn toplevel kept the old layout. Unlike a window which has never been shown, a GLFW window which has been shown and then hidden can be resized: GLFW keeps the size and uses it when the window is shown again. leaf check-in: f0254c1f user: serhiy.storchaka tags: wayland-geometry-on-deiconify

15:25
Wayland: send waits for the reply as on X11.

Wait until the reply comes or the target application has died, however long the command takes, instead of at most 5 seconds. Meanwhile serve the requests sent to this application, e.g. by the target (a recursive send), which interrupted mq_timedreceive() with EINTR, and defer all other events. A zombie process is dead. check-in: 7a66b204 user: serhiy.storchaka tags: wayland-send-errors

15:25
Wayland: modifier keys between the parts of a binding sequence are ignored.

Initialize the keymap information, such as the keycodes of the modifier keys, in TkpGetKeySym() when it is stale, as on X11. [event generate] of a modifier key uses the keycode of its physical key, since the synthetic keycodes do not fit in KeyCode, which is 8 bits wide in the X11 headers. leaf check-in: eb08da61 user: serhiy.storchaka tags: wayland-generated-modifier-keys

15:12
Fix [290ce5]: Tk performance regression on X11 check-in: 33ef282a user: jan.nijtmans tags: core-9-0-branch
15:09
Fix [290ce5]: Tk performance regression on X11 check-in: 3d1d80d0 user: jan.nijtmans tags: trunk, main
14:39
Rebase to trunk leaf check-in: 4dc9dc28 user: jan.nijtmans tags: vista_theme_improvements
14:20
Fix [5f7ba8]: only record windows belonging to an embedded toplevel in the deletedWinTable check-in: 6d2a074b user: jan.nijtmans tags: core-9-0-branch
14:08
Fix [220892]: focus changes forgotten during grab check-in: a92a002d user: jan.nijtmans tags: core-9-0-branch
14:02
Fix [853398ffff]: unixEmbed-5.1 failed sporadically check-in: d3532aec user: jan.nijtmans tags: core-9-0-branch
14:01
Fix [a4c72a]: errors when a menu is destroyed while it is posted check-in: 0168135c user: jan.nijtmans tags: core-9-0-branch
13:23
Fix [1474465]: focus test failures leaf check-in: 576e8cca user: jan.nijtmans tags: core-8-6-branch
13:14
Fix [1474465]: focus test failures check-in: 31a721f6 user: jan.nijtmans tags: core-9-0-branch
13:00
See [a4c72a], still failing on macOS check-in: 21fb5007 user: jan.nijtmans tags: trunk, main
12:49
Wayland: wm deiconify applies a geometry change made while the toplevel was hidden.

TkWmMapWindow() called UpdateGeometryInfo() before glfwShowWindow(), while the window was not visible, so the update was postponed with a timer. glfwShowWindow() waits for the compositor to configure the window, so apply the pending geometry right after it, synchronously as on X11. check-in: 6baa77c7 user: serhiy.storchaka tags: wayland-geometry-on-deiconify

12:49
Wayland: a resize generates ConfigureNotify even if the GL context of the window was not current.

TkWaylandFramebufferSizeCallback() created the new FBO without making the window's GL context current; after another toplevel was destroyed nvgluCreateFramebuffer() failed and the callback returned before generating ConfigureNotify, so the children kept the old layout. Make the context current, and generate ConfigureNotify even if the FBO cannot be created. leaf check-in: 9a0c42da user: serhiy.storchaka tags: wayland-configure-after-fbo-failure