mIRC Homepage

Windows Font Scaling

Posted By: dylix

Windows Font Scaling - 26/10/18 11:22 AM

Was this issue ever addressed? I have a 4k monitor and a 1080p.. The 4k monitor uses text size 150%, the other is 100%, but it effects mirc on my other monitor. The fonts look very strange.. https://i.imgur.com/77jTh4E.png
Posted By: Protopia

Re: Windows Font Scaling - 26/10/18 03:14 PM

It doesn't look that bad to me except perhaps for slight fuzziness on the menu.

As well as spelling out what the issue is, you need to provide more details of e.g. your windows version, your windows scaling settings and your mIRC version.
Posted By: Khaled

Re: Windows Font Scaling - 26/10/18 06:33 PM

There have been a number of DPI-related changes to improve support for scaling, multiple monitors, and so on, over the last few versions. In your case, it looks like the menubar has been scaled up, which is why the font is fuzzy.

mIRC currently uses <dpiAware>true</dpiAware> in the manifest file to enable DPI awareness, however it seems that for multiple monitors, an application needs to use <dpiAware>true/pm</dpiAware> for per monitor DPI awareness. I have added this to the next version. That said, it is not clear what the side-effects of this will be.

There is also a newer <dpiAwareness> element for Windows 10 that supports a "permonitorv2" option, however when I tested that under Windows 10, it caused MDI windows to be drawn incorrectly, so it does not look like it is an MDI-ready solution at this time.
Posted By: dylix

Re: Windows Font Scaling - 27/10/18 01:22 AM

win10.1607 14392.2580 (enterprise ltsb)

mirc 7.52

windows scaling? 150% on one monitor 100% on the other

@khaled cool, I'll wait for the new version and see how it goes
Posted By: dylix

Re: Windows Font Scaling - 27/10/18 11:18 PM

I tried the beta version, and now it doesnt change scaling at all when i move it between monitors..

everything is oversized, compared to another window..
https://i.imgur.com/6D1l498.png
Posted By: Khaled

Re: Windows Font Scaling - 28/10/18 08:13 AM

Thanks for testing this. This is indeed odd. The extra setting in the manifest file should have made Windows apply the correct scaling settings. I have just tested mIRC again with the "permonitorv2" but this time I logged out and logged in again and the MDI issue seems to have gone. So it looks like logging out/in is necessary to make this work correctly, even though it looks like it changes immediately. I will add the "permonitorv2" to the next beta.

Update: I am not convinced that "permonitorv2" will resolve your issue. I have tested various combinations of manifest file flags as well as DPI-related API calls and it is very difficult to get the right balance of expected UI scaling, window scaling, text scaling, and so on. We shall have to see if the "permonitorv2" option helps in the next beta. If it does not, it looks like we will need to revert to the v7.52 settings for the time being.
Posted By: Khaled

Re: Windows Font Scaling - 28/10/18 08:05 PM

After more testing at different DPI settings on two monitors, it does not look like this is currently solveable. The issue appears to be due to incomplete Windows support for MDI windows when the DPI per monitor options in the manifest file are enabled. When these are enabled, Windows 10 is sizing the height of the non-client area/menubar/min/max/close buttons, which are beyond mIRC's control, differently depending on whether a client window is maximized/restored. For now, I will be reverting to the v7.52 manifest settings and will look into this again later in the hope that Microsoft fixes it in an update.
Posted By: dylix

Re: Windows Font Scaling - 29/10/18 12:47 PM

Here is what did work...

The solution:
Have the app tell Windows that it is not DPI aware and let it scale everything properly. (Granted, this is not the ideal solution, but it does make the app usable again)

  • Press Windows Button + R, type “regedit”, and then click OK.
  • Navigate to the following registry subkey:
    HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > SideBySide
  • Right-click, select NEW > DWORD (32 bit) Value
  • Type PreferExternalManifest, and then press ENTER.
  • Right-click PreferExternalManifest, and then click Modify.
  • Enter Value Data 1 and select Decimal.
  • Click OK. Exit Registry Editor.



mirc.exe.manifest
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<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"
      version="6.0.0.0" processorArchitecture="*"
      publicKeyToken="6595b64144ccf1df"
      language="*">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<dependency>
  <dependentAssembly>
    <assemblyIdentity
      type="win32"
      name="Microsoft.VC90.CRT"
      version="9.0.21022.8"
      processorArchitecture="amd64"
      publicKeyToken="1fc8b3b9a1e18e3b">
    </assemblyIdentity>
  </dependentAssembly>
</dependency>

<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
  <security>
    <requestedPrivileges>
      <requestedExecutionLevel
        level="asInvoker"
        uiAccess="false"/>
    </requestedPrivileges>
  </security>
</trustInfo>

<asmv3:application>
  <asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
    <ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
  </asmv3:windowsSettings>
</asmv3:application>

</assembly>
Posted By: Khaled

Re: Windows Font Scaling - 29/10/18 05:14 PM

Thanks, glad to hear that works for you. Unfortunately that setting in fact reverses the support for DPI that mIRC has added over the last few years. I specifically added "dpiAware " as "true" some years ago to resolve other DPI-related issues. The specific issue you have is due to Windows incomplete support for MDI non-client scaling. This can only be resolved once Microsoft resolves the issue I mentioned in my previous post.
© 2022 mIRC Discussion Forums