From: Michael W. Hudson Date: Fri, 23 Aug 2002 15:27:52 +0000 (+0000) Subject: backport loewis' checkin of X-Git-Tag: v2.2.2b1~207 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=82f3bac561cb965f284984f5db60857a4e1f2707;p=thirdparty%2FPython%2Fcpython.git backport loewis' checkin of revision 1.161 of Tkinter.py Ignore widgets with unknown names in winfo_children. Fixes #518283. 2.2.2 candidate. --- diff --git a/Lib/lib-tk/Tkinter.py b/Lib/lib-tk/Tkinter.py index 9b400aa857d9..9f2b2e00648e 100644 --- a/Lib/lib-tk/Tkinter.py +++ b/Lib/lib-tk/Tkinter.py @@ -605,9 +605,17 @@ class Misc: self.tk.call('winfo', 'cells', self._w)) def winfo_children(self): """Return a list of all widgets which are children of this widget.""" - return map(self._nametowidget, - self.tk.splitlist(self.tk.call( - 'winfo', 'children', self._w))) + result = [] + for child in self.tk.splitlist( + self.tk.call('winfo', 'children', self._w)): + try: + # Tcl sometimes returns extra windows, e.g. for + # menus; those need to be skipped + result.append(self._nametowidget(child)) + except KeyError: + pass + return result + def winfo_class(self): """Return window class name of this widget.""" return self.tk.call('winfo', 'class', self._w)