• Tk 9.1.0 RELEASED

    From Don Porter@donald.porter@nist.gov to comp.lang.tcl on Tue Sep 29 12:34:56 2026
    From Newsgroup: comp.lang.tcl


    Tk 9.1.0 Release Announcement
    ==============================

    September 29, 2026

    The Tcl Core Team is pleased to announce the release of Tk 9.1.0.
    This is the first stable release of Tk 9.1. This should replace all
    prior alpha or beta releases.

    The Tk Toolkit is an extension to Tcl, providing commands and supports
    for the creation of graphical user interfaces. Tk originates with John Ousterhout and his team at U.C. Berkeley in the late 1980s. Its development
    is continued by the efforts of a global network of volunteers guided by
    the Tcl Core Team.

    We would like to express our gratitude to all those who submit bug
    reports and patches. This information is invaluable in enabling us
    to identify and eliminate problems. Such reports can be submitted here.

    [Tk Ticket Tracker](https://core.tcl-lang.org/tk/ticket)

    We ask that you log in (anonymous if you wish) to create tickets.
    This deters abuse of the ticketing system:

    [Tk Contributor Login](https://core.tcl-lang.org/tk/login)

    Where to get the new releases
    =============================

    Tk 9.1.0 sources are freely available as open source from the Tcl
    SourceForge project's file distribution area:

    [Tcl Source Distribution](https://sourceforge.net/projects/tcl/files/)

    The Tk 9.1.0 distribution is source code only. We keep links to some
    third parties offering pre-built binaries for various systems here:

    [Tcl Binary Distribution](https://www.tcl-lang.org/software/tcltk/bindist.html)

    Tk 9.1 Release Summary
    ======================

    This is a new minor version of Tk. When compared with the prior release
    Tk 9.0, there are new features to be enjoyed. The intention in a minor
    release is that new features are added without breaking extensions or applications that were written to the interfaces of the prior minor release.
    A small number of known incompatibilities are noted below.

    Tcl Improvement Proposals (TIPs)
    ================================

    Each new user-visible feature in Tk should find its origins in a Tcl Improvement Proposal (TIP). TIPs are published, edited, considered and
    voted in public, and should contain valuable information about how a
    feature came to be the way it is. See the full collection here:

    [TIP Index](https://tip.tcl-lang.org/)

    Tk Changes Summary
    ===================

    (from changes.md in the source code distribution)

    The source code for Tk is managed by fossil. Tk developers coordinate all changes to the Tk source code at

    [Tk Source Code](https://core.tcl-lang.org/tk/)

    Release Tk 9.1.0 arises from the check-in with tag `core-9-1-0`.

    Tk 9.1.0 continues the Tk 9.x series of releases. The Tk 9.x series
    do not support Tcl 8.6. The Tk 9.1 series extends the Tcl 9.0 series.
    To make use of Tk 9.1.0, first a Tcl 9.0 or 9.1 release must be present.
    As new Tk features are developed, expect them to appear in Tk 9.2+, but not
    in Tk 8.

    # Potential incompatibilities to 9.0
    - [MS-Win: Remove the -xpstyle option from tk_chooseDirectory and tk_getOpenFile](https://core.tcl-lang.org/tk/tktview/441c52)
    - [MS-Win: Eliminate the "xpnative" ttk style, in favor of "vista"](https://core.tcl-lang.org/tk/tktview/441c52)
    - [No longer allow negative screen distances in most cases](https://core.tcl-lang.org/tips/doc/trunk/tip/698.md)
    - [BiDi support is now the default build option on X11 and harfbuzz is a hard build dependency](https://core.tcl-lang.org/tk/tktview/1b81ff43a2)

    # 9.1 Features and Interfaces
    - [MS-Win: remove Windows XP dialog variants for tk_chooseDirectory and tk_getOpenFile](https://core.tcl-lang.org/tk/tktview/441c52)
    - [Extend Tk_CanvasTextInfo](https://core.tcl-lang.org/tips/doc/trunk/tip/704.md)
    - [Add new states to ttk::treeview and ttk::notebook](https://core.tcl-lang.org/tips/doc/trunk/tip/719.md)
    - [Limit tk_messageBox to physical screen width](https://core.tcl-lang.org/tk/info/e19f1d891)
    - [Constrain own Dialogs to the physical screen size](https://core.tcl-lang.org/tk/info/7c28f835)
    - [Add a ttk::toggleswitch widget to the core](https://core.tcl-lang.org/tips/doc/trunk/tip/727.md)
    - [Add a tk attribtable command to the core](https://core.tcl-lang.org/tips/doc/trunk/tip/729.md)
    - [Implement more X11 region functions on Windows and Aqua](https://core.tcl-lang.org/tk/info/50fdbc36ad)
    - [Add accessibility/screen reader support to the core](https://core.tcl-lang.org/tips/doc/trunk/tip/733.md)
    - [Scroll entry with mouse wheel](https://core.tcl-lang.org/tips/doc/trunk/tip/736.md)
    - [Add a Wide.TSpinbox style to the core](https://core.tcl-lang.org/tips/doc/trunk/tip/739.md)
    - [Add support for native file icons to the core](https://core.tcl-lang.org/tips/doc/trunk/tip/743.md)
    - [Re-implement the Aqua send command](https://core.tcl-lang.org/tk/info/1574913cc772201e)
    - [Make the selection colors of the listbox widget fully native-conform](https://core.tcl-lang.org/tips/doc/trunk/tip/747.md)
    - [Add support for bidrectional text / RTL languages on Windows and X11](https://core.tcl-lang.org/tk/tktview/1b81ff43a2)
    - [Add Mouse Wheel Zoom Support to Tk Console](https://core.tcl-lang.org/tips/doc/trunk/tip/742.md)
    - [Consistent dark mode for Windows and macOS](https://core.tcl-lang.org/tips/doc/trunk/tip/750.md)
    - [Rotated text for label widgets](https://core.tcl-lang.org/tips/doc/trunk/tip/751.md)
    - [ttk::treeview enhancements](https://core.tcl-lang.org/tips/doc/trunk/tip/740.md)
    - [Painting performance improvements for images in ttk widgets](https://core.tcl-lang.org/tk/info/7caf9e9edcfbee42)
    - [Locale support for word handling in text and entry](https://core.tcl-lang.org/tips/doc/trunk/tip/687.md)
    - [Provide access to the full contents of the Info.plist file of a Tk-based macOS app](https://core.tcl-lang.org/tips/doc/trunk/tip/725.md)

    For additional information:
    ===========================

    Please visit the Tcl Developer Xchange web site:

    [Tcl Developer Xchange](https://www.tcl-lang.org/)

    This site contains a variety of information about Tcl/Tk in general, the
    core Tcl and Tk distributions, Tcl development tools, and much more.

    --
    Tcl Core Team and Maintainers
    Don Porter, Tcl Core Release Manager
    --
    | Don Porter Applied and Computational Mathematics Division |
    | donald.porter@nist.gov Information Technology Laboratory |
    | http://math.nist.gov/~DPorter/ NIST | |______________________________________________________________________|

    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Mark Summerfield@m.n.summerfield@gmail.com to comp.lang.tcl on Wed Sep 30 08:16:21 2026
    From Newsgroup: comp.lang.tcl

    I've just installed Tcl/Tk 9.1.

    I've found that for the following widgets:
    ttk::label ttk::treeview ttk::entry ttk::button

    Their default font size is _much smaller_ than with Tcl/Tk 9.0.

    I have also discovered that they do *not* take any notice of tk scaling.

    Surely this is a bug?

    I am using Debian Linux trixie 13.
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Mark Summerfield@m.n.summerfield@gmail.com to comp.lang.tcl on Wed Sep 30 08:51:59 2026
    From Newsgroup: comp.lang.tcl

    On Wed, 30 Sep 2026 08:16:21 -0000 (UTC), Mark Summerfield wrote:

    I've just installed Tcl/Tk 9.1.

    I've found that for the following widgets:
    ttk::label ttk::treeview ttk::entry ttk::button

    Their default font size is _much smaller_ than with Tcl/Tk 9.0.

    I have also discovered that they do *not* take any notice of tk scaling.

    Surely this is a bug?

    I am using Debian Linux trixie 13.

    I think (but will test later since no time now) that the problem is that
    in my applications I'm calling tk scaling too late for Tcl/Tk 9.1 even
    though it is early enough for Tcl/Tk 9.0. If this proves to be the case
    then it clearly _isn't_ a bug; but perhaps ought to be mentioned in the
    release notes (unless it is and I missed it).
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From nemethi@csaba.nemethi@t-online.de to comp.lang.tcl on Wed Sep 30 12:35:04 2026
    From Newsgroup: comp.lang.tcl

    Am 30.09.26 um 10:51 schrieb Mark Summerfield:
    On Wed, 30 Sep 2026 08:16:21 -0000 (UTC), Mark Summerfield wrote:

    I've just installed Tcl/Tk 9.1.

    I've found that for the following widgets:
    ttk::label ttk::treeview ttk::entry ttk::button

    Their default font size is _much smaller_ than with Tcl/Tk 9.0.

    I have also discovered that they do *not* take any notice of tk scaling.

    Surely this is a bug?

    I am using Debian Linux trixie 13.

    I think (but will test later since no time now) that the problem is that
    in my applications I'm calling tk scaling too late for Tcl/Tk 9.1 even
    though it is early enough for Tcl/Tk 9.0. If this proves to be the case
    then it clearly _isn't_ a bug; but perhaps ought to be mentioned in the release notes (unless it is and I missed it).

    Can you give us an example of a case where the invocation of tk scaling
    is early enough for Tk 9.0 but too late for Tk 9.1?

    Regardless of the Tk version, tk scaling (if desired/needed) should be
    called immediately after "package require Tk" (if present):

    #! /usr/bin/env tclsh

    package require Tk
    tk scaling ...

    or

    #!/bin/sh
    # the next line restarts using wish \
    exec wish "$0" ${1+"$@"}

    tk scaling ...
    --
    Csaba Nemethi https://www.nemethi.de mailto:csaba.nemethi@t-online.de
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Mark Summerfield@m.n.summerfield@gmail.com to comp.lang.tcl on Wed Sep 30 12:01:37 2026
    From Newsgroup: comp.lang.tcl

    On Wed, 30 Sep 2026 12:35:04 +0200, nemethi wrote:

    Am 30.09.26 um 10:51 schrieb Mark Summerfield:
    On Wed, 30 Sep 2026 08:16:21 -0000 (UTC), Mark Summerfield wrote:

    I've just installed Tcl/Tk 9.1.

    I've found that for the following widgets:
    ttk::label ttk::treeview ttk::entry ttk::button

    Their default font size is _much smaller_ than with Tcl/Tk 9.0.

    I have also discovered that they do *not* take any notice of tk scaling. >>>
    Surely this is a bug?

    I am using Debian Linux trixie 13.

    I think (but will test later since no time now) that the problem is that
    in my applications I'm calling tk scaling too late for Tcl/Tk 9.1 even
    though it is early enough for Tcl/Tk 9.0. If this proves to be the case
    then it clearly _isn't_ a bug; but perhaps ought to be mentioned in the
    release notes (unless it is and I missed it).

    Can you give us an example of a case where the invocation of tk scaling
    is early enough for Tk 9.0 but too late for Tk 9.1?

    Regardless of the Tk version, tk scaling (if desired/needed) should be called immediately after "package require Tk" (if present):

    #! /usr/bin/env tclsh

    package require Tk
    tk scaling ...

    or

    #!/bin/sh
    # the next line restarts using wish \
    exec wish "$0" ${1+"$@"}

    tk scaling ...

    My GUI apps generally begin like this:

    if {![catch {file readlink [info script]} name]} {
    const APPPATH [file dirname $name]
    } else {
    const APPPATH [file normalize [file dirname [info script]]]
    }
    tcl::tm::path add $APPPATH

    package require gui

    [Gui new] show

    And the Gui constructor begins:

    package require config ;# This package reads a .ini file and calls tk scaling

    oo::define Gui constructor {} {
    Config new ;# we need tk scaling done early
    ...

    For Tcl/Tk 9.1 this no longer works. I have to change to:

    if {![catch {file readlink [info script]} name]} {
    const APPPATH [file dirname $name]
    } else {
    const APPPATH [file normalize [file dirname [info script]]]
    }
    tcl::tm::path add $APPPATH

    package require config
    Config new ;# we need tk scaling done early

    package require gui

    [Gui new] show

    You can see the difference in a real application: https://github.com/mark-summerfield/altkey
    The v1.0.0 works fine with Tcl/Tk 9.0 but ignores tk scaling for 9.1;
    the v1.0.1 works fine.


    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Harald Oehlmann@wortkarg3@yahoo.com to comp.lang.tcl on Wed Sep 30 14:10:17 2026
    From Newsgroup: comp.lang.tcl

    Hi Mark,
    great to read from you!

    If there is a difference, it should be documented on a new tk wiki page.

    I may create one today.

    Thanks,
    Harald
    --- Synchronet 3.22a-Linux NewsLink 1.2