DPI-awareness in Scrivener 1.9.5

Hi,

My wife is a long-time Scrivener user on Mac, and I’ve got her a new Windows laptop and installed Scrivener on it.

I should have checked before getting the laptop that Scrivener worked on Windows, but unfortunately I find that the latest version (1.9.5) is not DPI-aware and is unbearably grainy on a modern laptop; in the worst case we’ll have to return the laptop and get a MacBook instead, since Scrivener does look OK on Mac (that’s how much she likes Scrivener!).

After spending the morning trying to troubleshoot, I find I’ve waded into a long history with this bug, and I see that 1.9.5 is a recent release which attempts to fix the issue, but it’s clearly not right: the entire UI is being rendered at low resolution and upscaled.

I you’re using Qt 4.8.6, which -does- does not (edit!) support high-DPI displays, -so this ought to be fixable without major effort.-

I think all of us Windows would appreciate a swift 1.9.6 release with the correct fix. If Scrivener were open-source, I’d happily submit a pull request; I’ve debugged plenty of DPI issues in my time, but as it is we’re stuck waiting I think for the next version.

Would it be possible to have a quick estimate of the priority of this bug, and whether you intend to put out a patch release with the fix? I don’t expect a date, although that would be nice (I understand since my own company doesn’t promise dates to customers on new software versions!).

Nick, the technicalities here are over my head, and apologies if you’ve already looked at it, but is this thread relevant?
http://literatureandlatte.com/forum/viewtopic.php?f=30&t=35050

Hi David, thanks for the heads-up. I actually posted in that thread this morning, with an attempt to describe why the workaround there isn’t usable for me (on a retina display laptop, teliong Windows to pretend that the monitor is 96dpi makes the UI come out illegibly small).

There are about four forum threads now I can see with the same complaint about the 1.9.5 DPI issue, so hopefully it’s in Literature and Latte’s bug tracker now - and I hope they can tell us the fix-version as soon as it’s been triaged! I may well be taking my wife’s new laptop back to the shop and getting a lower-DPI one if they don’t plan to address it in the next release :frowning:

Hi Nick,

We’re aware of the Hi-DPI issue, and the adjustment in the 1.9.5 upgrade is just a workaround for the current 1.x version, as its older framework does not offer true HiDPI support as will be possible with the next major version. The best 1.x can do is allow the Windows scaling, which is what 1.9.5 now does automatically. If your display setup makes this too fuzzy, you can disable the scaling by right-clicking the Scrivener.exe and choosing Properties > Compatibility > Disable Display Scaling. You may have better success adjusting the screen resolution or adjusting text sizes within Scrivener’s Appearance options.

All the best,

Jennifer

Thank you for the reply.

Just to repeat something “tiho_d” said in the other thread, DPI-awareness won’t be coming until Scrivener v3, which is the next version that will use Qt 5.

So my hopes of a patch release for the DPI issue are dashed :frowning:

Will there be a Scrivener v2 for Windows, or does “Scrivener v3” mean “the next major release”?

They are skipping Windows V2. V3 will be the next major release for Windows.

Hi,

I am on Win 7, non-HiDPI screen laptop, 1400 x 900. I have not migrated to the new version yet, waiting for the dust to settle. 8)

If I upgrade to 1.9.5, will these scaling/resolution/font clarity issues impact my setup?

Thanks,
Jim

Jim, I think it’s hard to tell, because of the pfaffing about that Microsoft has done with this issue over several Win releases.

I might suspect not, on Windows 7, as I think that’s always pre any attempt by them to work with DPI, if memory serves.

In any case, I would assure that the issues are not severe; just a bit cosmetic. And they appear only on screen, as ‘skinny’ versions of non-Microsoft fonts.

I wouldn’t let this stop you from upgrading – and especially, freeing yourself this way for the great Scrivener iOS, which in any case at present uses a pretty limited set of fonts.

I just set everything to use Courier New, which has its advantages for real writing and editing – big, clear, no distractions, as on a typewriter.

And then if you really want formatted output from Scrivener, change the font only then to what you prefer. You can set up the font substitution in the Compile preferences (and save this): set using the first ‘A’ in the Format definition UI, which looks fuzzed out but isn’t, just colored – about to try that out.

Regards,
Clive

Clive, I appreciate the detailed reply.

As I don’t plan on writing on my iPhone 5 anytime soon, I have no urgent need to upgrade.

Even still, it took every ounce of my willpower not to press download and install. (Shiny glittering update look pretty! Must have it NOW!)

But I resisted, cause I’ve got some writing to catch up on and I know myself - I’ll spend hours trying every option to see what’s different.

Probably in a month or so I’ll give it a go.

All the best,
Jim

If anyone from the Scrivener team is reading this, what I’d suggest would be to manually add DPI-awareness to make the 1.9.x branch more usable. You don’t really need the whole app to look good, just the main app window, since that’s what you spend 99% of your time looking at as a Scrivener user. So for the toolbar, Binder on the left, status bar, etc, you can manually set the QFont’s size by doing the DPI-scaling yourself (with GetDpiForMonitor or the older GetDeviceCaps). OK, it’s not as “nice” as getting Qt to scale everything for you, but at the end of the day, manually scaling the font size on the Binder, the icon size on the toolbar, and the font size on the status bar isn’t going to take very long, and it will make the 1.9.x branch last longer.

Depending on how deeply you’ve hardcoded the font and icon sizes, that could be 1 or up to 2 days work - I don’t give QA estimates so I’ve no idea how long the testing might take, but I think it might be worth considering.

Does anyone from Scrivener want on comment on whether that sounds plausible or not? @tiho_d or @MimeticMouton?

I can confirm that the fullscreen view and the Document view look fine on a retina display without upscaling, and the corkboard would only need the size of the notes scaled up to look good. So it really is just the Binder, Inspector, and status bars that would need special treatment to make the app work well on retina displays.

Jim, I think I’m with you on this. I’m also on Windows 7 (and have no Apple devices), and since I don’t have any display issues, if 1.9.5 is mainly meant to address such issues I think I’ll stand pat until v. 3 is released.

I did not say that we are not going to try to fix the HighDPI in v1.9. I said it is not easy, and we have not found a way to do it up to now, due to implementation details. Adjusting bits here and bits there will take much more than 1-2 days of implementing. To be pixel perfect many things are hard coded in absolute values, which is a big problem for HighDPI management. Corkboard and Binder rendering is fully custom. Adjusting it for HighDPI monitors is not a one line change with many hard coded sizes and values. One might ask why are these hard coded, the answer is, because this is how it looked best on a NonHighDPI monitor many years ago, when implemented for the first time. Testing all this is also not a one day job, guys. Even if we make it, users with two monitors, one HighDPI and one Non-HighDPI display, will also report major problems, as moving windows in between monitors causes problems and Qt4 does not notify such changes. This is problematic even with the latest Qt5. I know that many of you have solved HighDPI problems successfully, but every project is unique, and you cannot simply copy paste a function that you know worked in your previous project. We know the issue. We are doing our best to fix it. Thanks for trying to help, guys. Truly hope that we will deliver a working solution soon.

Well understood, Tiho, and thanks for the clear information.

High-dpi does seem kind of a luxury ( dare I say hipster :wink: ( and ducking…)) item, compared with Scrivener’s actual uses. It’s not.a programming environment, which is also simpler on these counts, and can be usefully spread across huge and multiple screens.

Rather, focus, and clean minimal reference window(possibly multiple someday, but two is very often fine, as in the great iOS release) is the apparent thing.

Getting regular font i.e. Adobe and ClearType model hinting, weighting, and dealiasing back, though, would be a really welcome and fine help when you can arrange it. I really appreciate from the earlier time, how Qt team pfaffing about can upset and delay this.

Also can see on magnifyable Scrivener IOS just how fineeven more usual fonts can look. Which somehow very much relaxes,writing, as well. A little of the origina Macintosh feeling, maybe.

Best fortune on this, and again, thanks to you, Lee, and team for all. I’m really going to be using the results hard, and for good things, from now. Besides,spreading it about also :wink:

Regards,
Clive