main(): Move hackery of sys.argv until after the Tk instance has been
created. This allows the application-specific Tkinter
initialization to be executed if present. Also pass an explicit
className parameter to the Tk() constructor.
This closes SourceForge bug #110618.
diff --git a/Tools/idle/PyShell.py b/Tools/idle/PyShell.py
index 0bdb059..06d4f15 100644
--- a/Tools/idle/PyShell.py
+++ b/Tools/idle/PyShell.py
@@ -712,12 +712,6 @@
if o == '-t':
PyShell.shell_title = a
- if not edit:
- if cmd:
- sys.argv = ["-c"] + args
- else:
- sys.argv = args or [""]
-
for i in range(len(sys.path)):
sys.path[i] = os.path.abspath(sys.path[i])
@@ -735,7 +729,7 @@
sys.path.insert(0, dir)
global flist, root
- root = Tk()
+ root = Tk(className="Idle")
fixwordbreaks(root)
root.withdraw()
flist = PyShellFileList(root)
@@ -743,6 +737,12 @@
if edit:
for filename in args:
flist.open(filename)
+ else:
+ if cmd:
+ sys.argv = ["-c"] + args
+ else:
+ sys.argv = args or [""]
+
shell = PyShell(flist)
interp = shell.interp