If you 'bind all', the bind command will propagate the binding
to all the child windows.
Of course your bind handler will now need to check
if it is in the scrollable window or in one of the scrollable
window's child windows.
I have...
set cont [winfo containing {*}[winfo pointerxy $sdvars(window)]]
if { ! [winfo exists $cont] } {
return -code ok
}
if { ! [string match $sdvars(window)* $cont] } {
return -code ok
}
I think I still have an rare bug where the winfo 'pointerxy' command
crashes. Have to figure that one out.
I also did the same thing for the page up/page down keys and arrow keys.
And it gets complicated if you actually have widgets such as comboboxes
where you don't want the frame to scroll.