... or, rather, disabling it doesn't do anything, at least as of Tk 8.5.9. It still responds to all events, allowing the selection to be changed, columns to be resized, etc. In my app I do:
foreach x [bind Treeview] {
bind Treeview $x [format {if { ![%%W instate disabled] } { %s }} [bind Treeview $x]]
}
to make a disabled treeview totally disabled, but I think something like this should be the default.
(From discussion on the chat): Since the ttk::treeview widget has no builtin editing behavior in the first place, it is not clear what '-state disabled' ought to even mean.
stwo reports: desired behavior for him is that it not react to any user input at all, and is currently using [bindtags $tv { none }] to achieve that. That actually sounds like the best approach to me.
Other things people might want 'state disabled' to mean: do/do not take focus when clicked; do/do not allow the selection to be changed (this can be controlled with -selectmode, BTW); do/do not allow scrolling; do/do not allow toggling disclosure buttons; do/do not allow keyboard navigation; do/do not allow columns to be resized; do/do not allow application-specific operations. I just don't see a single Right Thing here.
So I think I'm going to leave things as they are right now (i.e., standard treeview widget bindings will not examine the 'disabled' state flag at all). For future consideration: split the Treeview bindings up into multiple mutually independent bindtags that can be mixed and matched to achieve whatever level of disabledness the application might want.