Issue 1601: IDLE not working correctly on Windows (Py30a2/IDLE30a1) (original) (raw)

Created on 2007-12-12 09:09 by mark, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (8)
msg58486 - (view) Author: Mark Summerfield (mark) * Date: 2007-12-12 09:09
(1) IDLE starts up on Windows OK, but if I press Alt+F the file menu comes up giant sized (i.e., each menu entry is almost as tall as the screen). (2) If I open a file using Ctrl+O, the Open dialog pops up fine, but when I select a file and click Open, IDLE crashes. Oh, and (no version of) IDLE respects the cursor blink setting on Windows.
msg58512 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2007-12-13 01:42
We are aware of several Windows related bugs with IDLE. I assume they are related to our Tcl/Tk build.
msg58519 - (view) Author: Joseph Armbruster (JosephArmbruster) Date: 2007-12-13 02:32
Tiran, agreed. You can reproduce this issue quickly outside of IDLE with this snippet: from Tkinter import * import tkMessageBox class App(Frame): def __init__(self, master): Frame.__init__(self,master) self.master.title("Wierd Menu") self.configure(height=200,width=200) self.grid(padx=15, pady=15,sticky=N+S+E+W) self.menu = Menu(self) self.master.config(menu=self.menu) self.tkMenu = Menu(self.menu) self.menu.add_cascade(label="MenuItem", menu=self.tkMenu) self.tkMenu.add_command(label="Test", command=self.Test) def Test(self): tkMessageBox.showinfo("Test", "Test") if __name__ == "__main__": root = Tk() app = App(root) root.mainloop()
msg58715 - (view) Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) * (Python committer) Date: 2007-12-18 01:34
I found that the huge font in menus is due to an error in the call to SystemParametersInfo. Digging more, vc2008 defines WINVER=0x0600, which corresponds to Windows Vista, and is too high for Windows XP: this value activates the definition of extra fields in the NONCLIENTMETRICS structure, and SystemParametersInfo on Windows XP will not accept a sizeof() greater than expected. I recompiled tk, adding WINVER=0x500 to the command line: nmake /f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 And the menu is correctly displayed. I suggest to add this to the build_tkinter script.
msg58717 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2007-12-18 01:53
Amaury Forgeot d'Arc wrote: > I found that the huge font in menus is due to an error in the call to > SystemParametersInfo. > Digging more, vc2008 defines WINVER=0x0600, which corresponds to Windows > Vista, and is too high for Windows XP: this value activates the > definition of extra fields in the NONCLIENTMETRICS structure, and > SystemParametersInfo on Windows XP will not accept a sizeof() greater > than expected. Wow, you are a genius! :) > I recompiled tk, adding WINVER=0x500 to the command line: > nmake /f makefile.vc COMPILERFLAGS=-DWINVER=0x0500 > And the menu is correctly displayed. > I suggest to add this to the build_tkinter script. Is 0x0500 fine for Windows 2000? Should we add WINVER=0x0500 to the Python project files, too? Christian
msg58718 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2007-12-18 02:03
Christian Heimes wrote: > Is 0x0500 fine for Windows 2000? Should we add WINVER=0x0500 to the > Python project files, too? http://msdn2.microsoft.com/en-us/library/aa383745.aspx Minimum system required Minimum value for _WIN32_WINNT and WINVER Windows Server 2008 0x0600 Windows Vista 0x0600 Windows Server 2003 SP1, Windows XP SP2 0x0502 Windows Server 2003, Windows XP 0x0501 Windows 2000 0x0500 0x0500 is fine for Windows 2000. Should we add something like this to PC/pyconfig.h to ensure that our build uses only Win2k compatible features and that the user is using at least 2k to compile Python? #ifdef WINVER # if WINVER < 0x0400 # error "Windows 2000 or newer is required" # endif # define WINVER 0x0500 # define _WIN32_WINNT 0x0500 #endif Christian
msg58737 - (view) Author: Amaury Forgeot d'Arc (amaury.forgeotdarc) * (Python committer) Date: 2007-12-18 10:26
I don't think this check is necessary. Some users may want to target specific windows versions, and compile their own modules with a higher WINVER. OTOH, python.org should compile with WINVER=0x0500, so that distributed binaries can run on most win32 platforms.
msg59019 - (view) Author: Kurt B. Kaiser (kbk) * (Python committer) Date: 2007-12-28 05:13
Assigning to tiran since I'm not building Python on XP. Changing to Tkinter, also. Is the file open bug fixed also by the suggested change?
History
Date User Action Args
2022-04-11 14:56:28 admin set github: 45942
2010-04-27 20:31:38 loewis set priority: normal
2008-01-06 22:29:44 admin set keywords: - py3kversions: Python 3.0
2008-01-05 21:36:08 christian.heimes set status: open -> closedresolution: fixed
2007-12-28 05:13:31 kbk set assignee: kbk -> christian.heimesmessages: + components: + Tkinter, - IDLE
2007-12-18 10:26:44 amaury.forgeotdarc set status: pending -> openresolution: fixed -> (no value)messages: + priority: high -> (no value)
2007-12-18 09:30:48 christian.heimes set status: open -> pendingpriority: highresolution: fixed
2007-12-18 02:03:33 christian.heimes set messages: +
2007-12-18 01:53:37 christian.heimes set messages: +
2007-12-18 01:34:57 amaury.forgeotdarc set nosy: + amaury.forgeotdarcmessages: +
2007-12-13 02:32:53 JosephArmbruster set nosy: + JosephArmbrustermessages: +
2007-12-13 01:42:41 christian.heimes set nosy: + christian.heimesmessages: +
2007-12-12 16:51:51 kbk set keywords: + py3k
2007-12-12 15:11:28 gvanrossum set assignee: kbknosy: + kbk
2007-12-12 09:09:59 mark create