Bug 46553 - Update embedded manifest on win32 builds to declare dpiAware
Summary: Update embedded manifest on win32 builds to declare dpiAware
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: LibreOffice (show other bugs)
Version:
(earliest affected)
Master old -3.6
Hardware: Other Windows (All)
: medium normal
Assignee: Andras Timar
URL:
Whiteboard: target:4.1.0 target:4.0.4
Keywords:
Depends on:
Blocks: mab3.6
  Show dependency treegraph
 
Reported: 2012-02-23 18:52 UTC by Emily Bowman
Modified: 2013-05-21 09:50 UTC (History)
5 users (show)

See Also:
Crash report or crash signature:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Emily Bowman 2012-02-23 18:52:42 UTC
Please update the embedded manifests on sbase, scalc, sdraw, simpress, smath, soffice, sweb, and swriter for win32 builds to the following:

<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" >
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type="win32" name="Microsoft.VC90.CRT" version="9.0.21022.8" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"></assemblyIdentity>
    </dependentAssembly>
  </dependency>
  <asmv3:application>
    <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
      <dpiAware>true</dpiAware>
    </asmv3:windowsSettings>
  </asmv3:application>
</assembly>

I've disabled the DPI virtualization (which is what the asmv3: section does) on my end and I haven't seen any problems with large font sizes, across all of the dialog boxes I normally use, so I believe that there is no reason not to declare dpiAware. This only affects Windows 7 and up, as Vista and XP do not have DPI virtualization. By declaring it, we will see XP-style font/UI sizing again. (This can also be globally set by the user, or manually forced via compatibility settings for individual executables, but that's not good UX.)

Rationale: On Windows 7 and up, setting a large font size forces DPI virtualization on non-DPI aware apps. (See this page: http://msdn.microsoft.com/en-us/library/windows/desktop/dd464660(v=vs.85).aspx ) This shows up as a very blurry interface as font size increases, whereas declaring it results in a very crisp and usable interface. As screen dot pitch shrinks and the ability to use large fonts on Windows has substantially improved, this is becoming very important.
Comment 1 Andras Timar 2012-06-05 13:41:36 UTC
It is waiting for a gbuild expert, I suppose.
Comment 2 Petr Kraus 2013-03-27 12:49:06 UTC
It scales LibreOffice content too. For example it renders horrible font on Impress presentation in fullscreen especially with contribution of Bug – 46817 to that.(I run LibreOffice 4.0.1.2 on Windows7 x64 SP1.)

Actually DPI aware should be enabled by default, because developers do not usually program/test with DPI scaling in mind and it can( does in some applications ) thus even cause GUI layout to break.
Comment 3 Michael Meeks 2013-05-16 13:54:24 UTC
It looks like (from solenv/gbuild/platform/com_MSC_class.mk) - that if a .manifest file is around - then we will use it already:

        $(if $(filter Executable,$(TARGETTYPE)),&& if [ -f $(1).manifest ]; then mt.exe $(MTFLAGS) -nologo -manifest $(1).manifest -outputresource:$(1)\;1 && touch -r $(1) $(1).manifest; fi) \

So - (I guess) this is a matter of dropping this manifest XML file in the right place to be used here, and checking it in (right?).

Andras - what do you want a gbuild expert for ? :-) I'd love to get this MAB closed ... :-)
Comment 4 Andras Timar 2013-05-20 18:31:15 UTC
$(1).manifest is a generated file (the linker generates it). 
We need to add an extra manifest file to some targets (to all GUI executables?).
Comment 5 Commit Notification 2013-05-20 18:52:18 UTC
Andras Timar committed a patch related to this issue.
It has been pushed to "master":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=d044918751da4bbdf87f7fb12382abf6c4068c07

fdo#46553 Update embedded manifest on win32 builds to declare dpiAware



The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.
Comment 6 Commit Notification 2013-05-21 09:50:08 UTC
Andras Timar committed a patch related to this issue.
It has been pushed to "libreoffice-4-0":

http://cgit.freedesktop.org/libreoffice/core/commit/?id=c905068b9d3b7406d629728e01a5f9460521de8f&h=libreoffice-4-0

fdo#46553 Update embedded manifest on win32 builds to declare dpiAware


It will be available in LibreOffice 4.0.4.

The patch should be included in the daily builds available at
http://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
http://wiki.documentfoundation.org/Testing_Daily_Builds
Affected users are encouraged to test the fix and report feedback.