Tk Library Source Code

View Ticket
Login
Ticket UUID: 9924aee88145dde4d5147b2e9d87b048201c34b4
Title: tooltip on megawidgets
Type: Bug Version: 2.0.1
Submitter: ralfixx Created on: 2025-07-30 16:53:38
Subsystem: tklib :: tooltip Assigned To: nobody
Priority: 5 Medium Severity: Important
Status: Open Last Modified: 2025-07-30 16:53:38
Resolution: None Closed By: nobody
    Closed on:
Description:

https://core.tcl-lang.org/tk/tktview/47d4f291598222849fc0121e7ffbdee53766ce77 deliberately changed the behaviour of Enter/Leave events of widgets in a parent/child relationship: now when entering a child, the parent gets a leave event.

This however kills tooltips on the parent, which previously (up to tk 8.6.12) worked on both, parent *and* child.

This has an impact on megawidgets which have a parent-child-relationship: previously (before tcl 8.6.13) a tooltip worked on all parts of the megawidget, now (tcl 8.6.13 and later) the situation is more complex:

wm geometry . 200x100
# a "mega-widget" with borders
pack [frame .f -bg green1] -side top
pack [frame .f.f1 -bg red -width 20 -height 20] -side left -padx 10 -pady 10
pack [label .f.lbl -bg white -text label-1] -side right

# a "mega-widget" without borders (no padding) pack [frame .f2 -bg green1] -side bottom pack [frame .f2.f1 -bg red -width 20] -side left -fill both pack [label .f2.lbl -bg white -text label-2] -side right -fill both -expand yes

package require tooltip tooltip::tooltip .f "This is .f" tooltip::tooltip .f2 "This is .f2"

In the upper "mega-widget", the tooltip comes and goes as the mouse enters the various parts (red box, white label).

In the lower "mega-widget", the container itself is not visible, and the tooltip works on all parts of the mega-widget.

IMHO the tooltip also needs to work on all parts in the upper "mega-widget".

Proposed patch attached (ignore the <Leave> event if the event detail is "NotifyInferior").

R'


Attachments: