Tcl Source Code

View Ticket
Login
Ticket UUID: 74e073599e5e7c5eb535e2f60f1b06feb468eaae
Title: tclsh is using old style dialogs when Tk is loaded on Windows
Type: Bug Version: 8.6.1
Submitter: anonymous Created on: 2014-08-20 02:04:13
Subsystem: 69. Other Assigned To: jan.nijtmans
Priority: 5 Medium Severity: Minor
Status: Closed Last Modified: 2014-08-20 11:25:22
Resolution: Fixed Closed By: jan.nijtmans
    Closed on: 2014-08-20 11:25:22
Description:
When running a script that includes [package require Tk] from tclsh on Windows, an old style theme is used for dialogs (tk_getOpenFile, tk_getSaveFile, etc.). Running from wish, the correct style theme is used for dialogs. Tested on Windows 7 and Windows 8.
User Comments: jan.nijtmans added on 2014-08-20 11:25:22:

Fixed in core-8-5-branch [a2a1fe34e9ebd0be2d16b244990a5856ac893b07|a2a1fe34e9] and trunk [c438e5f6a09988614b1f3e6eef5b830f87f3244f|c438e5f6a0].

Thanks for this report!


apnadkarni added on 2014-08-20 03:14:05:
I believe the difference is because the tclsh Windows build does not have the appropriate shell dialog manifest lines. 8.6.1 tclsh did not have a manifest at all afaict. In 8.6.2RC1, tclsh has a manifest but the following lines which are present in wish.exe.manifest.in are missing from tclsh.exe.manifest.in

    <asmv3:application>
	<asmv3:windowsSettings
		xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
	    <dpiAware>true</dpiAware>
	</asmv3:windowsSettings>
    </asmv3:application>
    <dependency>
	<dependentAssembly>
	    <assemblyIdentity
		    type="win32"
		    name="Microsoft.Windows.Common-Controls"
		    version="6.0.0.0"
		    processorArchitecture="@MACHINE@"
		    publicKeyToken="6595b64144ccf1df"
		    language="*"
		/>
	</dependentAssembly>
    </dependency>


Adding this to my build fixed this problem but not sure what other implications it might have. (Actually only the Common-Controls piece is relevant here but the DPI section should also be included I think)

/Ashok