> It seems very peculiar how the text widget's bbox is returning a > Python-like list and therefore breaking the Tcl callback. I haven't > thus far been able to determine which python method is causing that, > or if it's something related to the hooks you have added. The same > problem doesn't occur with 8.4.
I have now studied this in detail, and fixed it in Python's trunk; see the tracker item for details. In short: - IDLE redirects all widget sub-commands, either calling an overridden definition, or the original Tk command. - in the redirection of "bbox", Tk 8.4 would return a string, whereas 8.5 now returns a list. - _tkinter converts the string to a Python string, and the list to a Python tuple - IDLE returns the Python value to _tkinter, which in turn converts it to a string. This leaves the 8.4 string unchanged, but converts the 8.5 tuple into something like "(10, 10, 20, 20)". - Tk interprets it as a list of numbers, choking as "(10," is not a meaningful number. The fix is to return an ObjResult to Tcl from a Python callback. I'm skeptical about back-porting this to 2.5, as it may affect behavior. So for 2.5, we probably have to recommend not using Tk 8.5. There are a number of additional incompatible changes. For example, text::index returns textindex objects now, where it used to return strings. I have fixed that in Tkinter, which converts the textindex back to a string. I'm sure there are other places where Tk 8.5 will break existing Tkinter applications. Regards, Martin _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com