Skip to content

Commit 76734ed

Browse files
committed
Revert "bpo-45160: Ttk optionmenu only set variable once (GH-28291) (GH-29132)"
This reverts commit 04485ac.
1 parent 91a51c5 commit 76734ed

File tree

3 files changed

+1
-18
lines changed

3 files changed

+1
-18
lines changed

Lib/tkinter/test/test_ttk/test_extensions.py

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -301,19 +301,6 @@ def test_unique_radiobuttons(self):
301301
optmenu.destroy()
302302
optmenu2.destroy()
303303

304-
def test_trace_variable(self):
305-
# prior to bpo45160, tracing a variable would cause the callback to be made twice
306-
success = []
307-
items = ('a', 'b', 'c')
308-
textvar = tkinter.StringVar(self.root)
309-
def cb_test(*args):
310-
self.assertEqual(textvar.get(), items[1])
311-
success.append(True)
312-
optmenu = ttk.OptionMenu(self.root, textvar, "a", *items)
313-
textvar.trace("w", cb_test)
314-
optmenu['menu'].invoke(1)
315-
self.assertEqual(success, [True])
316-
317304

318305
class DefaultRootTest(AbstractDefaultRootTest, unittest.TestCase):
319306

Lib/tkinter/ttk.py

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1643,10 +1643,7 @@ def set_menu(self, default=None, *values):
16431643
menu.delete(0, 'end')
16441644
for val in values:
16451645
menu.add_radiobutton(label=val,
1646-
command=(
1647-
None if self._callback is None
1648-
else lambda val=val: self._callback(val)
1649-
),
1646+
command=tkinter._setit(self._variable, val, self._callback),
16501647
variable=self._variable)
16511648

16521649
if default:

Misc/NEWS.d/next/Library/2021-09-11-14-47-05.bpo-45160.VzMXbW.rst

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)