Here is the code to duplicate the issue.
I just threw any old images in there.
Ticket opened.
http://core.tcl.tk/tk/tktview/cec0e492fbf1de48caa487e7bf7c146c916aea2b
#!/usr/bin/tclsh
package require Tk
if { ! [package vsatisfies [package provide Tcl] 8.6.5-] } {
catch { package require Img }
}
namespace eval closeNotebook {
variable vars
proc br { w x y } {
variable vars
set e [$w identify $x $y]
if { [string match {*close} $e] } {
set t [$w identify tab $x $y]
set tabid [lindex [$w tabs] $t]
if { [info exists vars($w.$tabid)] } {
{*}$vars($w.$tabid)
} else {
$w forget $t
}
}
}
proc setCloseHandler { w tabid closeproc } {
variable vars
set vars($w.$tabid) $closeproc
}
proc _init { } {
variable vars
if { [info exists vars(initialized)] } {
return
}
set vars(initialized) true
set vars(img.inactive) [image create photo -data {
R0lGODlhEgASAOe2ADROcj9NaTpXeDtYdQ9p71VskVlivVVzkVVrvSh85Exu
0G9vb3BwbmNrszx53m5vpHBxpnRzo3V0nlKAxFuDr3R3vluIsVGJz39/iUqL
3F+Fw4ODgU+O3X2AuXOMpXKRplmU3WGV1WSWymuUw2yWypOTp5aVo32cw5OZ
m5Oam4WbvXueyX6ewpWanZabnImfvXij2Jmdn3mk1ZqeoIeiwZegqYWh1Xin
3Jmiq5ahvqCipo2mxaCiqI6j1JSmuKOiqH6r3oSq1JamuoOr2YWr1ZSovpim
voGs4aWlpaSmpaalraamqpWrv6enp6enraSpsKCrsoaw5JytvKKssqarrpyv
vIaz5qmqvairwKip0Juxz6Kwwoy16KOxw4625K2uva+vu5y01LCxr521z4+4
57Gxsayu0py21JO77ZW855O+65a/6Ji/5qG+2ba6up+/35nA67i8vKXA27u7
u7y8vK/Byb28vr29vb69vJ3F86+/57+/v6HF8bHFyaLH7K3I26TI9KPJ86XJ
8anL8bDK6rbI7KrS+sfI47DQ+LPR67XR67TT7szNzs3NzbDW/MzM5rrV6rTW
+LbX8MXR8dHR0b7X6rTZ/rrb/Lfc/8Dc6rrd/sXd483Y88bf5MDe+tfX7b/h
/dPa98Hj/8Lk/sTk+tzc7tfe98jn9sjq/srq/srr+s7u+szv/s3v/dHy/dby
+NXz99T2/tr6/tv6/9r7/t79/v//////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////
/////////////////////yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQB
CgD/ACwAAAAAEgASAAAI/gD/CRxIsKDBgU4wLGCwYcnBgV8gPCih5IcJCRHA
HMRioEKWQ59KPTLTocEVgxMc2NAzKZQpToV6KEBQ0EgCEEfYvAlz5s0aIBwI
5CA4IsQNK0QsAABAIUgUGBk0DIwjYggZNSwELB1wAg0XGRfiCIyzIk0gQS8C
LA2gAlAeLyTE/ouzg4+jSGMOLC2gBZEhODTkxhEyCBOoREw+eChC6JIlPz4E
T5EjChUpSH/+KPI0SlMbKHLnVpHEytWqU6dUtUq1SIobgoyodMkkqxatWbRi
VdrypFFBOjxw9OkE69WmOjV0zDm4J8kMFylQtIiBBM/Df5TslGnSRMwdStfD
AxMMCAA7
}]
set vars(img.active) [image create photo -data {
R0lGODlhEgASAOdjAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoK
CgsLCwwMDA0NDQ4ODg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZ
GRoaGhsbGxwcHB0dHR4eHh8fHyAgICEhISIiIiMjIyQkJCUlJSYmJicnJygo
KCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0NDU1NTY2Njc3
Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZG
RkdHR0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVV
VVZWVldXV1hYWFlZWVpaWltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2Rk
ZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1tbW5ubm9vb3BwcHFxcXJycnNz
c3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CAgIGBgYKC
goODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGR
kZKSkpOTk5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6Cg
oKGhoaKioqOjo6SkpKWlpaampqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+v
r7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5ubq6uru7u7y8vL29vb6+
vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zMzM3N
zc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc
3N3d3d7e3t/f3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr
6+zs7O3t7e7u7u/v7/Dw8PHx8fLy8vPz8/T09PX19fb29vf39/j4+Pn5+fr6
+vv7+/z8/P39/f7+/v///yH5BAEKAP8ALAAAAQASABEAAAj1AP8JFHjNVqhL
l0LZujawoUBkqUbJ2rVL1ihTwhwKbObKFrJq3LhVW3arVTKH2GjlWoZNnLmX
35rZgoWtIbFbyKJp+8bzm0hitIANxOaLWLRq2pJqw4at2jNhu2r+wyYsGjZu
4bKG48kNWzNeUrUZwxaOnDl06tCZI0fu2zVh2gRiQxYOrTt38ODdVUeOGzGp
fsWpk0fPXr589uS5Q/dNGDeB04BVY0cv375++/blk6cu8jTIwnyJo3e5n+l8
9MLxEvYZ8i5j5EqfJkdsV+uBzXLlahYub7jcuzVOW5ZLFixXrmDJWnnb4VNe
tmztqqqxunWBAQEAOw==
}]
set vars(img.pressed) $vars(img.active)
# this seems to adjust the border of the label, not the image.
ttk::style element create Notebook.close image \
[list $vars(img.inactive) \
{active pressed !disabled} $vars(img.pressed) \
{active !disabled} $vars(img.active)] \
-border {0 0 20 0} -sticky {}
ttk::style layout Close.TNotebook.Tab {
Notebook.tab -children {
Notebook.padding -side left -children {
Notebook.focus -side left -children {
Notebook.label -side left -sticky {}
}
Notebook.close -side left -sticky {}
}
}
}
set blist [bind TNotebook]
foreach {b} $blist {
set p [bind TNotebook $b]
bind Close.TNotebook $b $p
}
bind Close.TNotebook <ButtonRelease-1> {+::closeNotebook::br %W %x %y}
}
_init
}
if { 1 } {
proc closer { } {
puts closer
.nb forget .b
}
proc demo { } {
ttk::style theme use alt
ttk::notebook .nb -style Close.TNotebook -class Close.TNotebook
frame .a -background red
.nb add .a -text aaa -sticky news ; # -image ::img::close -compound right
frame .b -background blue
.nb add .b -text bbb -sticky news ; # -image ::img::close -compound right
closeNotebook::setCloseHandler .nb .b closer
pack .nb -expand true -fill both
}
demo
}