Fun with Multi-Desktop High DPI TVs

I’m having “fun” with displaying a client with a second desktop on two high def 3840xH monitors.
The issue is that one screen was made for high res, while the other wasn’t.
The one that wasn’t made for high res looks perfect when the Windows scale is set to 150-200%, however if I do this and leave the other monitor at 100%, I see this below where the “fullscreen” of the 100% monitor is really only 1/4 screen.

If I set them both to 100%, they both show as fullscreen perfectly, but the left monitor you can’t read anything. Lowering the left monitor’s resolution works as well, but is obviously horrible and fuzzy.

I also tried to boycott the fullscreen option in the system.nav.openDesktop function and pass it some width and height arguments, but I couldn’t get the size or position to be correct (correct sized client window, but zoomed content, and positioned left or right of centre of the screen, no matter how I incremented the x position!!)

Do I have any options?

I’ve also tried to launch two instances of the client from the native client launcher, but they both appear on the main monitor. I can move one manually across to the other monitor, but it displays at 50% res (cause of 100% scale compared to 200%). If I restore and then maximise the client, it just disappears. Still there somewhere as it’s in the taskbar, but nowhere to be seen.

I’m out of ideas…

Can I set shortcut launch switches to fix things? Trying to find them now in the help…

1 Like

Ok, I set the “screen” switch / option in the client launcher shortcut to 1, and it did exacltly the same thing as above when I moved the client from the 200% screen and maximised it on the 100% screen: it disappeared from view… I can only see the desktop wallpaper

VNC’d showing both monitors: 200% on left, 100% on right. Launched fullscreen on right.

Alt+spacebar’ing clearly shows that it’s there:

I can get this to display correctly, but only by moving it using alt+spacebar, m (for move), then move it with the arrow keys. I have to move it down and to the left, onto the 200% left monitor and then back to the 100% monitor. Then finally it maximises properly. However it’s a super manual process… Maybe I can autohotkey it

Did you ever find an answer to this? I’ve been struggling with this for years. The version of Java we have doesn’t have the option for compatibility settings to “perform scaling by app”, only to “disable high DPI scaling” which doesn’t help.

The NCLs use java 9 on ignition 7.9 which is supposed to be DPI aware (but your actual experience may vary with this in practice).

The other option you could try is fiddling with javas dpi aware settings by using -Dsun.java2d.uiScale=2.5 (this means 250%) or -Dsun.java2d.dpiaware=false

Ultimately, this isn’t great in java at the moment and mixing the scaling ratios for multiple monitors which are using the same java process isn’t very good and might take launching two different instances from the NCL with some combo of the above arguments too.

Thanks for the quick reply. I’ve ended up passing -Dsun.java2d.uiScale=1.0 to get client windows to size correctly and majority of my app has objects set w/ relative scaling & scale font, so mostly looks OK.

2 Likes