summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiss Islington (bot) <31488909+miss-islington@users.noreply.github.com>2021-04-26 01:54:25 (GMT)
committerGitHub <noreply@github.com>2021-04-26 01:54:25 (GMT)
commit9ca20fdc4c27e31832adbd6d393a87e7d8953e3c (patch)
treef2b7f0defdb77c35f26251d35a390f91f6aea251
parentf28a59c13efb3db021e1eb404f74bd10b0c8036e (diff)
downloadcpython-9ca20fdc4c27e31832adbd6d393a87e7d8953e3c.zip
cpython-9ca20fdc4c27e31832adbd6d393a87e7d8953e3c.tar.gz
cpython-9ca20fdc4c27e31832adbd6d393a87e7d8953e3c.tar.bz2
bpo-43534: Fix the turtle module working with multiple root windows GH-25594
(cherry picked from commit 8af929fc76f21fb123f6a47cb3ebcf4e5b758dea) Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
-rw-r--r--Lib/turtle.py15
-rw-r--r--Misc/NEWS.d/next/Library/2021-04-25-13-34-13.bpo-43937.isx95l.rst1
2 files changed, 8 insertions, 8 deletions
diff --git a/Lib/turtle.py b/Lib/turtle.py
index 13f662a..024fed8 100644
--- a/Lib/turtle.py
+++ b/Lib/turtle.py
@@ -464,20 +464,18 @@ class TurtleScreenBase(object):
a corresponding TurtleScreenBase class has to be implemented.
"""
- @staticmethod
- def _blankimage():
+ def _blankimage(self):
"""return a blank image object
"""
- img = TK.PhotoImage(width=1, height=1)
+ img = TK.PhotoImage(width=1, height=1, master=self.cv)
img.blank()
return img
- @staticmethod
- def _image(filename):
+ def _image(self, filename):
"""return an image object containing the
imagedata from a gif-file named filename.
"""
- return TK.PhotoImage(file=filename)
+ return TK.PhotoImage(file=filename, master=self.cv)
def __init__(self, cv):
self.cv = cv
@@ -811,7 +809,7 @@ class TurtleScreenBase(object):
>>> screen.mainloop()
"""
- TK.mainloop()
+ self.cv.tk.mainloop()
def textinput(self, title, prompt):
"""Pop up a dialog window for input of a string.
@@ -966,6 +964,8 @@ class TurtleScreen(TurtleScreenBase):
def __init__(self, cv, mode=_CFG["mode"],
colormode=_CFG["colormode"], delay=_CFG["delay"]):
+ TurtleScreenBase.__init__(self, cv)
+
self._shapes = {
"arrow" : Shape("polygon", ((-10,0), (10,0), (0,10))),
"turtle" : Shape("polygon", ((0,16), (-2,14), (-1,10), (-4,7),
@@ -989,7 +989,6 @@ class TurtleScreen(TurtleScreenBase):
self._bgpics = {"nopic" : ""}
- TurtleScreenBase.__init__(self, cv)
self._mode = mode
self._delayvalue = delay
self._colormode = _CFG["colormode"]
diff --git a/Misc/NEWS.d/next/Library/2021-04-25-13-34-13.bpo-43937.isx95l.rst b/Misc/NEWS.d/next/Library/2021-04-25-13-34-13.bpo-43937.isx95l.rst
new file mode 100644
index 0000000..cb4d90b
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2021-04-25-13-34-13.bpo-43937.isx95l.rst
@@ -0,0 +1 @@
+Fixed the :mod:`turtle` module working with non-default root window.