Classic Shell
http://classicshell.net/forum/

Classic Start Menu scales incorrectly on mixed DPI screens
http://classicshell.net/forum/viewtopic.php?f=12&t=5529
Page 1 of 1

Author:  davestewart [ Tue Dec 29, 2015 2:52 am ]
Post subject:  Classic Start Menu scales incorrectly on mixed DPI screens

I've recently made the move to a high-DPI laptop with a secondary external screen, but unfortunately, Classic Shell exhibits scaling issues when displayed on the secondary monitor.

It seems to somehow be taking the primary (high-DPI) settings and looks hugely enlarged.

I haven't tried swapping the monitors in Display Settings to see if this has any effect, but I assume that this setup hasn't been considered when developing.

I've also set Classic Shell to use "Disable display scaling" in its Application Properties, which brings some of its own issues (the layout in CS Settings is misdrawn to varying degrees in most panels) though seems to solve others.

Would be great to at least get confirmation on this, and hopefully a fix at some point.

Thanks,
Dave

Attachments:
classic shell hidpi.png
classic shell hidpi.png [ 98.88 KiB | Viewed 41864 times ]

Author:  Gaurav [ Tue Dec 29, 2015 5:20 am ]
Post subject:  Re: Classic Start Menu scales incorrectly on mixed DPI scree

Are you using the latest version, Classic Shell 4.2.5 released in November? It has new support for per-monitor DPI scaling. The text and menu elements are scaled independently for each monitor. The icon size depends on the global system DPI. Try it without any compatibility settings like disabling scaling in its Properties.

Also, on the Menu Look tab, locate the setting "Override system DPI", right click it and click "Set default" so its value becomes 0. Then restart the menu and see if it scales correctly on the two separate displays.

Author:  davestewart [ Tue Dec 29, 2015 5:41 am ]
Post subject:  Re: Classic Start Menu scales incorrectly on mixed DPI scree

Hi Gaurav,

That's helped, certainly, thanks.

As you say, the icons on the second display aren't respecting the scale of the monitor, but seem to be taking their lead from the global setting. Can this be fixed?

Also, the tooltip text is also much bigger; screenshot attached.

Attachments:
classic shell hidpi 2.png
classic shell hidpi 2.png [ 458.57 KiB | Viewed 41852 times ]

Author:  davestewart [ Tue Dec 29, 2015 5:47 am ]
Post subject:  Re: Classic Start Menu scales incorrectly on mixed DPI scree  Topic is solved

Hmm... seems like the tooltip is a Windows thing, as it happens even outside of CS.

It's so frustrating! MS really have seemed to have dropped the ball with high DPI displays :(

Author:  davestewart [ Tue Dec 29, 2015 7:24 am ]
Post subject:  Re: Classic Start Menu scales incorrectly on mixed DPI scree

So having looked at this some more, I'm still getting discrepancies.

Setting icon sizes to suit one monitor won't suit the other.

Either the icons are too small on the high-DPI monitor, or freakishly large on the normal-DPI monitor.

Is there no way to solve this?

Author:  Ivo [ Tue Dec 29, 2015 9:49 am ]
Post subject:  Re: Classic Start Menu scales incorrectly on mixed DPI scree

Loading the icons is one of the more expensive parts of loading the start menu. Loading them in many different sizes will slow down the operation. That's why the per-monitor DPI is ignored for determining the icon sizes.

Author:  davestewart [ Tue Dec 29, 2015 9:59 am ]
Post subject:  Re: Classic Start Menu scales incorrectly on mixed DPI scree

I have to say, in this case I would prefer consistency over performance.

If there was a way this could be offered in a future update, I would be all for it :)

Author:  Ivo [ Tue Dec 29, 2015 10:23 am ]
Post subject:  Re: Classic Start Menu scales incorrectly on mixed DPI scree

That's unlikely to happen. Having only two icon sizes - small and large - is pretty fundamental to the architecture of the start menu.
You can however tweak the sizes in the Main Menu tab and try to pick a value that works well on both of your monitors.

Author:  davestewart [ Wed Dec 30, 2015 11:31 am ]
Post subject:  Re: Classic Start Menu scales incorrectly on mixed DPI scree

Hi Ivo,

Thanks for the reply.

Currently, that is what I've done; to find a setting that kinda works for both.

I get the large and small icons thing (having made a bunch for my Windows 10 theme if you remember) I guess I just don't understand enough about Windows development, or its DPI scaling issues to understand why it might be prohibitively difficult to scale each Start Menu instance's icons separately, relative to the text size.

Even on my secondary normal-dpi monitor, running alongside the laptop's primary high-dpi display, the icons look fuzzy compared to my separate, all normal-dpi system.

I don't expect this post to change your mind, but I would be interested in knowing a bit more about it if you have time.

Also, second question: would adding higher-res icons to the .ico files be a partial solution? Would these be loaded in and scaled in place of the smaller ones?

Cheers,
Dave

Author:  Ivo [ Wed Dec 30, 2015 11:45 am ]
Post subject:  Re: Classic Start Menu scales incorrectly on mixed DPI scree

The start menu does not try to scale icons as it displays them. It will only scale them on loading, if the exact size is not available. That scaling may produce fuzzy icons. Once loaded, the size doesn't change.
The images are cached in memory and on disk, but only at their requested sizes. That's why changing the size can destroy the performance.

Providing higher-res icons may or may not improve the quality. For example if you need 40x40, and you have 48x48, you will get some fuzziness. Adding a 256x256 will not make things better because the menu will still pick 48x48 as the closest size.

Author:  Gaurav [ Thu Dec 31, 2015 3:09 am ]
Post subject:  Re: Classic Start Menu scales incorrectly on mixed DPI scree

So if having only two icon sizes is fundamental to optimum performance, can it have a setting in a future version where if multiple displays with different DPIs are present, then the Start Menu uses *only* the small icon size for the normal DPI display (for main menu as well as submenu), and for the high DPI display, it uses *only* the large icon size (again for both main menu and submenu)?

So essentially it's letting the user choose between different icon sizes per monitor vs the current design - different icon sizes per main menu and submenu? Of course, this edge case behavior would only be activated if multiple displays with a considerable difference in DPIs are present. Or it can be a user-controllable setting "Use the same icon size for main menu and submenus but larger icon size on high DPI displays".

Author:  davestewart [ Mon Jan 11, 2016 8:53 am ]
Post subject:  Re: Classic Start Menu scales incorrectly on mixed DPI scree

I agree that loading in the optimum icons for each display is the best option. Performance is secondary to me - an i7 should be able to draw a few extra icons! And then they should be cached.

As it happens though, I've found Windows 10's handling of different density DPI displays to be so appalling across a range of apps, compounded when using mixed DPI screens, that I've decided to disable my high-res laptop display (it's a MacBook Pro) and ONLY power my two external monitors, when both plugged in.

This gives me a 1920 x 1080 x 2 x normal DPI, as opposed to that PLUS 3600 x 2000 - but broken-looking applications.

I can't tell you how disappointed I am with Microsoft on this one - though it's not totally fair to say this is their fault; developers should have grasped this nettle by now and upgraded their apps as SOME work flawlessly (though many of MS's own do NOT, Excel and Word being two).

This has been the final nail in the coffin for me and my "1 laptop / Win & OSX" dream... and strangely, the winner is OSX. Using a MBP under Windows has proved to be much more of a compromise than Apple would have you believe, and it's just going to be easier and cleaner to suffer some of the drawbacks of the Apple OS to get a much better overall experience (on this setup, at least). I'll only use Windows now if I'm doing Flash or Office development - all other web development I think is going to be Mac only.

A bit of background for you there anyway :)

Cheers,
Dave

Author:  ej5chfn6 [ Fri Sep 23, 2016 5:11 pm ]
Post subject:  Re: Classic Start Menu scales incorrectly on mixed DPI scree

Was there any progress on this front? I have two screen one at 100% and the other one at 200%. When I'm on the 200% the ClassShell menu is tiny. Overriding the DPI in the settings is not really an option as on the 100% display it is too large. Ideally, ClassicShell should take into account the DPI of the current display and perform properly. If it means having to do operations twice, I think most users will be happy without much performance degradation. Of course, this only applies to setup where the DPI is different between the displays.

Thanks,
Manu

Author:  Gaurav [ Fri Sep 23, 2016 11:56 pm ]
Post subject:  Re: Classic Start Menu scales incorrectly on mixed DPI scree

@ej5chfn6, per-monitor DPI scaling should work under the following conditions:

- Make sure "Let me choose one scaling level for all my displays" is turned off (Windows 8.1). On Windows 10, it is not required, per-monitor display scaling is always on unless you set a custom DPI for all monitors from the DPI Scaling Control Panel.
- In Classic Start Menu Settings, on the Menu Look tab, locate the setting "Override system DPI", right click it and click "Set default".
- Make sure you are using Classic Shell 4.2.5 or later. It has new support for per-monitor DPI scaling. But only the text and menu elements are scaled independently for each monitor. The icon size depends on the global system DPI.

Even in Windows 10 Anniversary Update, Windows or rather GDI has limitations with per-display scaling. Desktop icons for example, do not scale on a per-display basis when you are in "extend" display mode with different scale factors. The icons will remain incorrectly sized on some displays. Microsoft needs to fix it for Explorer.

Page 1 of 1 All times are UTC - 8 hours [ DST ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/