Issue #3767: Convert Tk object to string in tkColorChooser.
diff --git a/Lib/lib-tk/tkColorChooser.py b/Lib/lib-tk/tkColorChooser.py
index a55a797..cf6283b 100644
--- a/Lib/lib-tk/tkColorChooser.py
+++ b/Lib/lib-tk/tkColorChooser.py
@@ -34,19 +34,22 @@
try:
# make sure initialcolor is a tk color string
color = self.options["initialcolor"]
- if type(color) == type(()):
+ if isinstance(color, tuple):
# assume an RGB triplet
self.options["initialcolor"] = "#%02x%02x%02x" % color
except KeyError:
pass
def _fixresult(self, widget, result):
+ # result can be somethings: an empty tuple, an empty string or
+ # a Tcl_Obj, so this somewhat weird check handles that
+ if not result or not str(result):
+ return None, None # canceled
+
# to simplify application code, the color chooser returns
# an RGB tuple together with the Tk color string
- if not result:
- return None, None # canceled
r, g, b = widget.winfo_rgb(result)
- return (r/256, g/256, b/256), result
+ return (r/256, g/256, b/256), str(result)
#
@@ -66,5 +69,4 @@
# test stuff
if __name__ == "__main__":
-
print "color", askcolor()
diff --git a/Misc/NEWS b/Misc/NEWS
index 070e698..a5b3d2d 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -91,6 +91,8 @@
Library
-------
+- Issue #3767: Convert Tk object to string in tkColorChooser.
+
- Issue #3248: Allow placing ScrolledText in a PanedWindow.
- Issue #4444: Allow assertRaises() to be used as a context handler, so that