diff --git a/Lib/tkinter/__init__.py b/Lib/tkinter/__init__.py index 1dc41188451177f80738c7f3a40d54d58df70eb7..ae493ed3aaaf3f2517701dbbceef84d2de992c5e 100644 --- a/Lib/tkinter/__init__.py +++ b/Lib/tkinter/__init__.py @@ -4280,7 +4280,7 @@ class Spinbox(Widget, XView): select to commands. If the selection isn't currently in the spinbox, then a new selection is created to include the characters between index and the most recent selection - anchor point, inclusive. Returns an empty string. + anchor point, inclusive. """ return self.selection("adjust", index) @@ -4288,7 +4288,7 @@ class Spinbox(Widget, XView): """Clear the selection If the selection isn't in this widget then the - command has no effect. Returns an empty string. + command has no effect. """ return self.selection("clear") @@ -4296,9 +4296,9 @@ class Spinbox(Widget, XView): """Sets or gets the currently selected element. If a spinbutton element is specified, it will be - displayed depressed + displayed depressed. """ - return self.selection("element", element) + return self.tk.call(self._w, 'selection', 'element', element) def selection_from(self, index): """Set the fixed end of a selection to INDEX.""" diff --git a/Lib/tkinter/test/test_tkinter/test_widgets.py b/Lib/tkinter/test/test_tkinter/test_widgets.py index 12a0fbeeeee199a5ea3c9ecd0b0967619d6afb5b..16e9d93944c205db067f9a80704130149e925cb2 100644 --- a/Lib/tkinter/test/test_tkinter/test_widgets.py +++ b/Lib/tkinter/test/test_tkinter/test_widgets.py @@ -522,7 +522,14 @@ class SpinboxTest(EntryTest, unittest.TestCase): self.assertEqual(widget.selection_get(), '2345') widget.selection_adjust(0) self.assertEqual(widget.selection_get(), '12345') - widget.selection_adjust(0) + + def test_selection_element(self): + widget = self.create() + self.assertEqual(widget.selection_element(), "none") + widget.selection_element("buttonup") + self.assertEqual(widget.selection_element(), "buttonup") + widget.selection_element("buttondown") + self.assertEqual(widget.selection_element(), "buttondown") @add_standard_options(StandardOptionsTests) diff --git a/Misc/NEWS.d/next/Library/2018-10-08-21-05-11.bpo-34936.3tRqdq.rst b/Misc/NEWS.d/next/Library/2018-10-08-21-05-11.bpo-34936.3tRqdq.rst new file mode 100644 index 0000000000000000000000000000000000000000..7c1f7bb59760e4238a66ca09e8201494ef9b6e5a --- /dev/null +++ b/Misc/NEWS.d/next/Library/2018-10-08-21-05-11.bpo-34936.3tRqdq.rst @@ -0,0 +1,2 @@ +Fix ``TclError`` in ``tkinter.Spinbox.selection_element()``. Patch by +Juliette Monsel.