Tk Source Code

View Ticket
Bounty program for improvements to Tcl and certain Tcl packages.
Tcl 2019 Conference, Houston/TX, US, Nov 4-8
Send your abstracts to
or submit via the online form by Sep 9.
Ticket UUID: 845248
Title: TIP#167: Context help for Win32
Type: Patch Version: TIP Implementation
Submitter: nobody Created on: 2003-11-19 16:55:13
Subsystem: 68. Win Window Operations Assigned To: patthoyts
Priority: 5 Medium Severity:
Status: Open Last Modified: 2010-01-04 04:56:41
Resolution: None Closed By:
    Closed on:
Check TIP#167
User Comments: patthoyts added on 2010-01-04 04:56:39:
The tkchelp.diff patch here is clearly older than the code in patch 2838812 which contains the same functionality wrapped up among other stuff.
The same comments about multi-purpose patches applies. See the 0002-*.patch added to 2838812 for comparison with this feature.

dkf added on 2009-07-29 20:12:49:

data_type - 312997

dkf added on 2009-07-29 20:12:11:

IP - Comment Removed:

dkf added on 2009-07-29 20:12:09:

IP - Comment Removed:

dkf added on 2009-07-29 20:12:07:

IP - Comment Removed:

dkf added on 2009-07-29 20:11:53:

IP - Comment Removed:

dkf added on 2009-07-29 20:11:50:

IP - Comment Removed:

dkf added on 2009-07-29 20:11:46:

IP - Comment Removed:

dkf added on 2009-07-29 20:11:41:

IP - Comment Removed:

dkf added on 2008-12-11 22:34:04:

data_type - 212997

a_kovalenko added on 2007-10-25 09:54:40:
Logged In: YES 
Originator: NO

PS. If someone has a courage to work with my code from the latest patch, refining it for inclusion into Tk, I'm ready to answer questions related to the code, either by SF e-mail or by Jabber: Some aspects of message handling in Tk on win32 are obscure; e.g. the current CVS version of EatSpuriousMessageBugFix() is evidently based on a wrong idea about mouse button event generation in Tk/win32. If any part of my code seems useless, please ask me first if possible; if it seems obscure, yeah, it is :(.

a_kovalenko added on 2007-10-25 09:34:16:

File Added - 251240: tkchelp.diff

Logged In: YES 
Originator: NO

I know that it doesn't work right. I have a working solution that is used in Tk builds for my own projects. Now I'm attaching tkchelp.diff in hope that someone has time to refine it and make its way to the core. Unfortunately I'm very short of time for 2 weeks or so, of course I'd done it myself otherwise. 

The solution to the context help problem used in the new patch is far from elegant, but it works and enabled me to solve another longstanding problem as well (see tkWinDialog.c: EatSpuriousMessageBugFix(); this function in the current CVS really doesn't do anything useful, while the patched version does).

There are two other kinds of changes in the attached file: (1) wm attribute -shadow support for win32 - there was no TIP on it and no discussion, and (2) changes to tkUnixRFont.c for -underline font attribute support with Xft. At this moment I don't have enough time to isolate these changes and submit them separately and create a TIP for -shadow etc.etc. Sorry.

File Added: tkchelp.diff

patthoyts added on 2007-10-25 08:50:15:
Logged In: YES 
Originator: NO

This patch doesn't work right. If a I test this then the clicks are passed through. So trying to get context help for a radio/checkbutton sets the button. On a normal button it clicks the button. On a text widget it sets the insert position etc. This should not happen - the click should be eaten by the help event. The cursor handling seems fine though.

a_kovalenko added on 2005-12-27 12:56:24:

File Added - 161169: contexthelp-virtual.patch

Logged In: YES 

I'm attaching the patch that uses <<Help>> virtual event
instead of <Help>, to address the reasonable concern of Joe

It seems, however, that it requires editing the TIP, and
perhaps voting or re-voting on it, or something like this.
If a half-year delay with contexthelp is inevitable due to
all these things, I would prefer to run out of event mask
bits :-)

jenglish added on 2004-02-25 07:32:49:
Logged In: YES 

Wouldn't it be better to use virtual events for this? 
(<<Help>> instead of <Help>).

This part worries me:

 #define HelpMask      (1L << 31)

Which means we've now run out of event mask bits...

dkf added on 2003-11-20 00:03:44:
Logged In: YES 

Submitted by Ramon Ribó <>

nobody added on 2003-11-19 23:55:14:

File Added - 68004: tk8.5a0.patch