unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Patch for Windows 8.1+ HiDPI support
@ 2015-05-13  7:45 Vitaly Takmazov
  2015-05-13 17:02 ` Eli Zaretskii
  0 siblings, 1 reply; 4+ messages in thread
From: Vitaly Takmazov @ 2015-05-13  7:45 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 3180 bytes --]

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.manifestindex
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.manifestindex 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.cindex
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.  */

[-- Attachment #2: Type: text/html, Size: 7583 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Patch for Windows 8.1+ HiDPI support
  2015-05-13  7:45 Patch for Windows 8.1+ HiDPI support Vitaly Takmazov
@ 2015-05-13 17:02 ` Eli Zaretskii
  0 siblings, 0 replies; 4+ messages in thread
From: Eli Zaretskii @ 2015-05-13 17:02 UTC (permalink / raw)
  To: Vitaly Takmazov; +Cc: emacs-devel

> Date: Wed, 13 May 2015 10:45:53 +0300
> From: Vitaly Takmazov <vitalyster@gmail.com>
> 
> 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

Thanks.

> 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">

Did you verify that these attributes don't produce any problems on
older versions of Windows?

> --- 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);

I don't see how can we remove this flag unconditionally, since we do
use a hook function, and for a good reason, AFAIR.  Won't removing the
flag break the functionality for which we use the callback function
there?  Did you try selecting "Directories" in the file chooser?



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Patch for Windows 8.1+ HiDPI support
       [not found] <CADvwsn46ucV0TRTpKBwtWW_6saJfu=7Z4bHk6Q+OQL1QV5jmzg@mail.gmail.com>
@ 2015-05-30 10:36 ` Eli Zaretskii
  2015-06-02 13:52   ` Fabrice Popineau
  0 siblings, 1 reply; 4+ messages in thread
From: Eli Zaretskii @ 2015-05-30 10:36 UTC (permalink / raw)
  To: Michael Abrahams, Vitaly Takmazov; +Cc: emacs-devel

> From: Michael Abrahams <miabraha@gmail.com>
> Date: Wed, 27 May 2015 00:11:08 -0400
> 
> > > 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">
> 
> > Did you verify that these attributes don't produce any problems on
> > older versions of Windows?
> 
> This white paper describes support for the high-dpi tag starting in
> Windows Vista, and states on page 8 that it is ignored by Windows XP.
> I can verify the patch works in Windows 8.1.
> 
> http://go.microsoft.com/fwlink/?LinkID=129586

Thanks.  I pushed that part of the patch.



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Patch for Windows 8.1+ HiDPI support
  2015-05-30 10:36 ` Eli Zaretskii
@ 2015-06-02 13:52   ` Fabrice Popineau
  0 siblings, 0 replies; 4+ messages in thread
From: Fabrice Popineau @ 2015-06-02 13:52 UTC (permalink / raw)
  To: emacs-devel

Eli Zaretskii <eliz <at> gnu.org> writes:


> > This white paper describes support for the high-dpi tag starting in
> > Windows Vista, and states on page 8 that it is ignored by Windows XP.
> > I can verify the patch works in Windows 8.1.
> > 
> > http://go.microsoft.com/fwlink/?LinkID=129586
> 
> Thanks.  I pushed that part of the patch.

Thanks a lot for this patch!

Fabrice




^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2015-06-02 13:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-05-13  7:45 Patch for Windows 8.1+ HiDPI support Vitaly Takmazov
2015-05-13 17:02 ` Eli Zaretskii
     [not found] <CADvwsn46ucV0TRTpKBwtWW_6saJfu=7Z4bHk6Q+OQL1QV5jmzg@mail.gmail.com>
2015-05-30 10:36 ` Eli Zaretskii
2015-06-02 13:52   ` Fabrice Popineau

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).