There seem to be a lot of other cases where we also programatically invoke select_node.  Can we be sure none of them will ever happen when the item is already selected?

It seems safer to not have to rely on that sort of assumption.  Is there a way for the select_node event handler above to distinguish user-driven selection from programmatic?  (e.g. does it pass along a root-cause click event object or anything?).  If not, I wonder if we could instead just have rename be driven by click events rather than select_node...