emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Patch for Windows 8.1+ HiDPI support


From: Vitaly Takmazov
Subject: Patch for Windows 8.1+ HiDPI support
Date: Wed, 13 May 2015 10:45:53 +0300

Hello,
Emacs works perfectly on HiDPI monitor, I have patched ony two minor things:
1) declare dpi-awareness in manifest files, so Windows will not enable "compatibility mode" and fonts now look crisp by default
2) remove unneeded OFN_ENABLEHOOK flag passed to GetOpenFileName, which allow OS to show modern "open file" dialog. Legacy dialog not support HiDPI mode and show too small icons.
Let me know if I miss something and/or select wrong place to report it

---
diff --git a/nt/emacs-x64.manifest b/nt/emacs-x64.manifest
index 5434e29..3cf56dd 100644
--- a/nt/emacs-x64.manifest
+++ b/nt/emacs-x64.manifest
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
   <dependency>
     <dependentAssembly>
       <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls"
@@ -30,4 +30,9 @@
          <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
       </application> 
     </compatibility>
+  <asmv3:application>
+    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
+      <dpiAware>true</dpiAware>
+    </asmv3:windowsSettings>
+  </asmv3:application>
 </assembly>
diff --git a/nt/emacs-x86.manifest b/nt/emacs-x86.manifest
index 7f09c56..d7053be 100644
--- a/nt/emacs-x86.manifest
+++ b/nt/emacs-x86.manifest
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
   <dependency>
     <dependentAssembly>
       <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls"
@@ -30,4 +30,9 @@
         <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
       </application> 
     </compatibility>
+  <asmv3:application>
+    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
+      <dpiAware>true</dpiAware>
+    </asmv3:windowsSettings>
+  </asmv3:application>
 </assembly>
diff --git a/src/w32fns.c b/src/w32fns.c
index ed11031..c04b9b0 100644
--- a/src/w32fns.c
+++ b/src/w32fns.c
@@ -6680,7 +6680,7 @@ value of DIR as in previous invocations; this is standard Windows behavior.  */)
 #endif
     file_details_w->nFilterIndex = NILP (only_dir_p) ? 1 : 2;
     file_details_w->Flags = (OFN_HIDEREADONLY | OFN_NOCHANGEDIR
-                 | OFN_EXPLORER | OFN_ENABLEHOOK);
+                 | OFN_EXPLORER);
     if (!NILP (mustmatch))
       {
         /* Require that the path to the parent directory exists.  */
@@ -6707,7 +6707,7 @@ value of DIR as in previous invocations; this is standard Windows behavior.  */)
     file_details_a->lpstrTitle = prompt_a;
     file_details_a->nFilterIndex = NILP (only_dir_p) ? 1 : 2;
     file_details_a->Flags = (OFN_HIDEREADONLY | OFN_NOCHANGEDIR
-                 | OFN_EXPLORER | OFN_ENABLEHOOK);
+                 | OFN_EXPLORER);
     if (!NILP (mustmatch))
       {
         /* Require that the path to the parent directory exists.  */

reply via email to

[Prev in Thread] Current Thread [Next in Thread]