I have tried setting the scaling manually using setSurfaceScale but it doesn't seem to do anything.
Looking at the source code, the setSurfaceScale method of WindowImpl never sets the requested scale into the scale used (with the possible exception of OSX, where the osx WindowDriver class overrides this method), so methods like defineSize are not using the correct scaling factor.
Am I missing something? Or is setting the scale not fully implement for Newt for windows and x11?
The HiDPI support in NEWT works only under OS X. I thought that it was working under Windows too but it doesn't. Feel free to contribute even though it's not a trivial task especially under Windows. Improving the X11 window driver should be easier.
The approach of overriding the getClientArea call and replacing it with one that reverts the application of the scaling factor seems to work well, but I have no idea if this is the "correct" way to handle the situation.
I will see if I can find anyone with more SWT expertise than me to see if there is a better way.