{"thread":{"id":"64053","subject":"gitk bug: Disabling \"Themed widgets\" breaks preferences dialogue","startedAt":"2025-08-28T14:25:19Z","lastAt":"2025-09-09T21:22:26Z","messageCount":3,"participants":["Mark Hills","Johannes Sixt"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"525110","messageId":"075a1389-c5d6-18f4-ed19-13b0041dbbd0@xwax.org","threadId":"64053","inReplyTo":null,"subject":"gitk bug: Disabling \"Themed widgets\" breaks preferences dialogue","fromName":"Mark Hills","fromEmail":"mark@xwax.org","sentAt":"2025-08-28T14:02:03Z","receivedAt":"2025-08-28T14:25:19Z","isPatch":false,"sender":{"key":"mark@xwax.org","avatar":null},"body":"I use Alpine Linux 3.22 (latest).\n\nRecently gitk's preferences window refuses to open.\n\nThis seems to be a direct result of switching off the \"Themed widgets\" \nsetting, which is my preferred choice.\n\nError message:\n\ninvalid command name \"::combobox\"\ninvalid command name \"::combobox\"\n    while executing\n\"${NS}::combobox $page.wrapcomment -values {none char word} -state \nreadonly  -textvariable wrapcomment\"\n    (procedure \"prefspage_general\" line 41)\n    invoked from within\n\"prefspage_general $notebook\"\n    (procedure \"doprefs\" line 27)\n    invoked from within\n\"doprefs\"\n    invoked from within\n\".#bar.#bar#edit invoke active\"\n    (\"uplevel\" body line 1)\n    invoked from within\n\"uplevel #0 [list $w invoke active]\"\n    (procedure \"tk::MenuInvoke\" line 50)\n    invoked from within\n\"tk::MenuInvoke .#bar.#bar#edit 1\"\n    (command bound to event)\n\nSteps to reproduce:\n\n  $ rm -f ~/.gitk ~/.config/git/gitk\n  $ cd <git-repo>\n  $ gitk\n  Edit -> Preferences\n  Uncheck \"Use themed widgets\"\n  Ok\n  File -> Quit\n  $ gitk\n  [error]\n  Ok\n  [empty preferences window opens]\n\n$ cat /etc/alpine-release\n3.22.1\n\n$ apk info git tk tcl\ngit-2.49.1-r0 description:\nDistributed version control system\n\ngit-2.49.1-r0 webpage:\nhttps://www.git-scm.com/\n\ngit-2.49.1-r0 installed size:\n6568 KiB\n\ntcl-8.6.16-r0 description:\nThe Tcl scripting language\n\ntcl-8.6.16-r0 webpage:\nhttps://www.tcl-lang.org/\n\ntcl-8.6.16-r0 installed size:\n4244 KiB\n\ntk-8.6.16-r0 description:\nGUI toolkit for the Tcl scripting language\n\ntk-8.6.16-r0 webpage:\nhttps://www.tcl-lang.org/\n\ntk-8.6.16-r0 installed size:\n1926 KiB\n\n-- \nMark\n"},{"id":"525157","messageId":"2005fae0-5991-41e3-a1f2-4625086de7b3@kdbg.org","threadId":"64053","inReplyTo":"075a1389-c5d6-18f4-ed19-13b0041dbbd0@xwax.org","subject":"Re: gitk bug: Disabling \"Themed widgets\" breaks preferences dialogue","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2025-08-28T21:32:46Z","receivedAt":"2025-08-28T21:32:50Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 28.08.25 um 16:02 schrieb Mark Hills:\n> I use Alpine Linux 3.22 (latest).\n> \n> Recently gitk's preferences window refuses to open.\n> \n> This seems to be a direct result of switching off the \"Themed widgets\" \n> setting, which is my preferred choice.\n> \n> Error message:\n> \n> invalid command name \"::combobox\"\n> invalid command name \"::combobox\"\n>     while executing\n> \"${NS}::combobox $page.wrapcomment -values {none char word} -state \n> readonly  -textvariable wrapcomment\"\n>     (procedure \"prefspage_general\" line 41)\nThis bug was introduced by 904b36b815ff, which is in Git 2.48.0 and was\nfixed by daa364cfb7a1, available since Git 2.50.0.\n\n-- Hannes\n\n"},{"id":"525997","messageId":"e7cbfbf5-2a50-e1a9-a3f3-08cf5a4e5b8e@xwax.org","threadId":"64053","inReplyTo":"2005fae0-5991-41e3-a1f2-4625086de7b3@kdbg.org","subject":"Removal of classic Tk widgets (was Re: gitk bug: Disabling \"Themed widgets\" breaks preferences dialogue)","fromName":"Mark Hills","fromEmail":"mark@xwax.org","sentAt":"2025-09-09T20:53:30Z","receivedAt":"2025-09-09T21:22:26Z","isPatch":false,"sender":{"key":"mark@xwax.org","avatar":null},"body":"On Thu, 28 Aug 2025, Johannes Sixt wrote:\n\n> Am 28.08.25 um 16:02 schrieb Mark Hills:\n> > I use Alpine Linux 3.22 (latest).\n> > \n> > Recently gitk's preferences window refuses to open.\n> > \n> > This seems to be a direct result of switching off the \"Themed widgets\" \n> > setting, which is my preferred choice.\n> > \n> > Error message:\n> > \n> > invalid command name \"::combobox\"\n> > invalid command name \"::combobox\"\n> >     while executing\n> > \"${NS}::combobox $page.wrapcomment -values {none char word} -state \n> > readonly  -textvariable wrapcomment\"\n> >     (procedure \"prefspage_general\" line 41)\n\n> This bug was introduced by 904b36b815ff, which is in Git 2.48.0 and was\n> fixed by daa364cfb7a1, available since Git 2.50.0.\n\nYes that commit does indeed fix the bug.\n\nBut then starting with commit cb9fa4d9ecd97 only a month later (v2.51.0) \nsystematically strips out all support for this preference.\n\nThat seems a bit over-enthusiastic to me, considering how at least one \nuser proactively submitted a patch when a bug got introduced.\n\nThe justification here seems to be that it's not the default; and \ntherefore there's less code to maintain if it's removed -- however this \nwould justify the removal of most features in most software...\n\ncommit cb9fa4d9ecd97b9e7e9bbd449c5106cad64215e8\nAuthor: Mark Levedahl <mdl123@verizon.net>\nDate:   Sun Jun 8 08:16:34 2025 -0400\n\n    gitk: always use themed Tk (ttk)\n\n    gitk added the option to used themed Tk (ttk) in 0cc08ff7dd (\"gitk: Add\n    a user preference to enable/disable use of themed widgets\", 2009-09-05).\n    Using ttk had to be optional as Tk 8.4, then in common use, does not\n    have ttk. ttk is the default when available, so the ttk code paths are\n    by now very well tested. gitk also has code paths for the older default\n    widgets, increasing the maintenance burden. Let's make ttk non-optional\n    to reduce code complexity in later commits.\n\n    Signed-off-by: Mark Levedahl <mlevedahl@gmail.com>\n\n-- \nMark\n"}]}