I know it takes time to update software, but you guys have known about high DPI displays for quite some time. Unfortunately, Windows 10 does NOTHING to improve the situation for programs using legacy programming frameworks.
I’m a professional author who depends on Scrivener for my novel writing, but Scrivener is all but unusable on my new laptop. (my main mode of writing) The font size on a high res display (1920x1080) is barely readable, making Scrivener all but useless. I really feel for other users with even higher resolution displays!
When will these issues be resolved? If not soon, I fear I may have to abandon Scrivener altogether, which would be a major downer.
I too, use a 1920x1080 display at home with Scrivener, but that monitor is 28". When laptops adopt high res displays with much smaller screens (13") then the type becomes unreadable. Unfortunately, because Scrivener is based on an old legacy programming framework, the fonts are hard coded. Therefore, even though I’ve got my laptop rendering set to 150%, this does nothing to resize the Scrivener fonts that occupy the menu, index card entries, or outliner.
I’ve even tried using Windows 10 advanced display settings, which allow you to scale fonts separately. Unfortunately, this breaks most programs, because zones, windows, and areas in a program are expecting a certain size font and if the font is bigger than expected, the text in the area gets cut off and becomes unreadable.
The only real solution for this is to recompile Scrivener using the newer Microsoft frameworks which expect entire programs to be able to be resized, fonts and all. I’m sure the programmers are planning to adopt these new frameworks, but when? High res laptop displays have been out for several years now. L&L is really shooting themselves in the foot by not resolving this issue.
Just a followup: I have managed to improve things significantly by going to “tools/options/appearance” and changing several of the font choices there. This has made much of the the scrivener interface more bearable, although I still haven’t figured out a way to enlarge the font in the synopsis box on the corkboard. There are also some issues with certain windows, where choosing larger fonts cause the text to extend past the window size. Many windows, especially in the compile interface are non-resizable, which complicates matters.
But all-in-all, I’ve managed to make things more bearable by changing the appearance settings, so that’s good! Still hope we see an update soon!
Looks interesting! I’ll try it out. But I’ve got to ask: if the solution is as simple as a new manifest file, why doesn’t L&L provide a minor update with this already configured? I’m somewhat of a techhead, but most writers are not . . .
We are aware of the scaling issues, but the current framework simply does not have the support for the high dpi; there’s no slap-on fix for this. The next major version of Scrivener will have a newer framework and we are working to ensure its scalability. The manifest fix provided in the linked thread is a great stop-gap solution users can apply, but it is not something we can supply in Scrivener’s build as it both requires administrator privileges (something Scrivener’s current installer does not) and also could modify the display of programs other than Scrivener.
The workaround that loads a manifest is actually an override of the related setting that is part of the Scrivener program executable itself. The registry setting instructs windows to allow such overrides.
It is possible for you to correct the relevant setting within the program itself. The problem is that the current Scrivener executable explicitly and falsely declares the itself as being DPI-aware (i.e. capable of handling variable DPI) thus instructing the operating system to not apply the scaling mechanism that it has available for ‘legacy’ applications. If this is corrected not only will a manifest override not be needed but Windows will not need to be instructed through the registry setting to allow such overrides either.
Depending on the tool chain that is used during the development (specifically compilation and building) of Scrivener the exact name and place of this setting may vary so I cannot provide instructions that match this specific case. I can provide an example and would likely be able to find exact instructions if I had knowledge about the chosen development tool chain.
For example, if Scrivener is a Visual C++ program developed within Visual Studio 2010, you can find this setting in the project properties, under a drop down that is called ‘Enable DPI awareness’ where it would currently have defaulted to ‘Yes’. Simply changing this particular setting to ‘No’ and rebuilding the program will apply the change. If at any time in the future DPI scaling is implemented in Scrivener this can then be re-enabled.
PKoster - Thanks. I’ve actually been in discussion about all this again with the Windows devs over the past couple of weeks, as I’ve been compiling the workaround notes for a knowledge base article. My earlier reply re: the workaround came after I’d checked with them (since you’re right, I’m not a coder and didn’t know enough of the specifics myself), but they’re looking at adjusting the embedded manifest for the next release. Depending on the Windows settings, then, that should let Windows scale Scrivener automatically. Meanwhile, the external manifest workaround achieves the same thing in the current version.