Mirth Connect
  1. Mirth Connect
  2. MIRTH-4091

Mirth UI doesn't display correctly on high dpi monitors

    Details

    • Type: Improvement Improvement
    • Status: Open
    • Priority: Minor Minor
    • Resolution: Unresolved
    • Affects Version/s: 3.4.2
    • Fix Version/s: None
    • Component/s: Administrator
    • Labels:
      None
    • Environment:
      Windows 10

      Description

      This may be a duplicate of issue 3349, but I'm not sure.
      On high DPI screens, Mirth Administrator is too small to be readable.
      I suspect this is a problem with the Swing GUI components, since they're not DPI-aware. In principle, windows will auto-scale any application that isn't DPI-aware, to ensure that the display doesn't suck. Unfortunately, Java itself seems to report that it is DPI-aware in it's .exe manifests, which means that windows will trust Java to handle all DPI-scaling. The end result is that things look ugly.
      I don't know if there's anything that can be done in the application-level Java code to fix this display issue, but it would sure be nice if there was.

        Issue Links

          Activity

          Hide
          Neils Schoenfelder added a comment -

          Here's a solution that I've found works for Mirth 3.5 and Java 8.131:
          1) Go to the Java directory that contains the jp2launcher.exe file that's run when Mirth Administrator is started. On my computer, the directory is C:\Program Files\Java\jre1.8.0_131\bin
          2) Right-click on the jp2launcher.exe file and select "properties"
          3) In the Properties window, select the Compatibility tab.
          4) Check the "Override high DPI scaling behavior" check box
          5) Underneath the "Scaling Performed by:" text, there's a drop-down menu. Select "System" on this menu.
          6) Click "OK"
          This will tell Windows 10 that it should be the manager of the high-dpi scaling rather than relying on the application (Java Swing) to do the high dpi scaling.

          Show
          Neils Schoenfelder added a comment - Here's a solution that I've found works for Mirth 3.5 and Java 8.131: 1) Go to the Java directory that contains the jp2launcher.exe file that's run when Mirth Administrator is started. On my computer, the directory is C:\Program Files\Java\jre1.8.0_131\bin 2) Right-click on the jp2launcher.exe file and select "properties" 3) In the Properties window, select the Compatibility tab. 4) Check the "Override high DPI scaling behavior" check box 5) Underneath the "Scaling Performed by:" text, there's a drop-down menu. Select "System" on this menu. 6) Click "OK" This will tell Windows 10 that it should be the manager of the high-dpi scaling rather than relying on the application (Java Swing) to do the high dpi scaling.
          Hide
          Geoff Wass added a comment -

          Neils,

          Thank you for your suggestion.

          I tried to follow your instructions but it did not work. The problem may be that Properties on my computer does not show the exact thing as you describe. I tried to what was closest by checking "Disable display scaling on high DPI settings".

          I do not yet have Windows 10 Creators Update, so that may account for the differences between our computers.


          Geoff Wass

          Show
          Geoff Wass added a comment - Neils, Thank you for your suggestion. I tried to follow your instructions but it did not work. The problem may be that Properties on my computer does not show the exact thing as you describe. I tried to what was closest by checking "Disable display scaling on high DPI settings". I do not yet have Windows 10 Creators Update, so that may account for the differences between our computers. – Geoff Wass
          Hide
          Geoff Wass added a comment -

          Neils,

          I sent my message too quickly. I meant to first ask if you had any further suggestions.

          Show
          Geoff Wass added a comment - Neils, I sent my message too quickly. I meant to first ask if you had any further suggestions.
          Hide
          Neils Schoenfelder added a comment -

          I'm using Windows 10 Pro build 1703 (Creator's update). I think that upgrading your windows build or downgrading Mirth to 3.4 might be your best approaches (if possible). On a previous version of Windows 10, I couldn't use the "Disable display scaling on high DPI settings" checkbox to make Mirth readable. Sorry.
          If you're feeling brave, there are some hacks you can apply to the manifest of the *.exe files in your C:\Program Files\Java\jre1.8.0_131\bin directory. You might try using Resource Tuner to manipulate the manifest of the java executables to mark them as high-dpi-UNAWARE. The details of this hack (which I make no guarantees about) can be found here:
          https://superuser.com/questions/988379/how-do-i-run-java-apps-upscaled-on-a-high-dpi-display

          I wish you the best of luck. If you find a successful workaround, please post it.

          Show
          Neils Schoenfelder added a comment - I'm using Windows 10 Pro build 1703 (Creator's update). I think that upgrading your windows build or downgrading Mirth to 3.4 might be your best approaches (if possible). On a previous version of Windows 10, I couldn't use the "Disable display scaling on high DPI settings" checkbox to make Mirth readable. Sorry. If you're feeling brave, there are some hacks you can apply to the manifest of the *.exe files in your C:\Program Files\Java\jre1.8.0_131\bin directory. You might try using Resource Tuner to manipulate the manifest of the java executables to mark them as high-dpi-UNAWARE. The details of this hack (which I make no guarantees about) can be found here: https://superuser.com/questions/988379/how-do-i-run-java-apps-upscaled-on-a-high-dpi-display I wish you the best of luck. If you find a successful workaround, please post it.
          Hide
          Neils Schoenfelder added a comment -

          I verified that the solution I outlined on June 6th, 2017 works with Mirth version 3.5.1 running over Java 8 v151 on Windows 10 build 1709.
          Unfortunately, the Java installer will create a new j2plauncher.exe file every time Java is upgraded. This means that the solution will need to be re-enabled after every Java update.

          Show
          Neils Schoenfelder added a comment - I verified that the solution I outlined on June 6th, 2017 works with Mirth version 3.5.1 running over Java 8 v151 on Windows 10 build 1709. Unfortunately, the Java installer will create a new j2plauncher.exe file every time Java is upgraded. This means that the solution will need to be re-enabled after every Java update.

            People

            • Assignee:
              Unassigned
              Reporter:
              Neils Schoenfelder
            • Votes:
              2 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

              • Created:
                Updated:

                Development