It is currently Fri Mar 29, 2024 11:18 pm

All times are UTC - 8 hours [ DST ]


Forum rules


Before posting a bug report or a feature request, search the forum for an older post on the same topic. If you are reporting a crash, try capturing a crash dump. You can find instructions here: How to capture crash dumps



Post new topic Reply to topic  [ 14 posts ] 
Author Message
PostPosted: Tue Dec 29, 2015 2:52 am 
Offline

Joined: Wed Aug 06, 2014 2:31 am
Posts: 50
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 41592 times ]
Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 29, 2015 5:20 am 
Offline
User avatar

Joined: Thu Jan 03, 2013 12:38 am
Posts: 5374
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.

_________________
Links to some general topics:

Compare Start Menus

Read the Search box usage guide.

I am a Windows enthusiast and helped a little with Classic Shell's testing and usability/UX feedback.


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 29, 2015 5:41 am 
Offline

Joined: Wed Aug 06, 2014 2:31 am
Posts: 50
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 41580 times ]
Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 29, 2015 5:47 am 
Offline

Joined: Wed Aug 06, 2014 2:31 am
Posts: 50
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 :(


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 29, 2015 7:24 am 
Offline

Joined: Wed Aug 06, 2014 2:31 am
Posts: 50
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?


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 29, 2015 9:49 am 
Offline
Site Admin
User avatar

Joined: Wed Jan 02, 2013 11:38 pm
Posts: 5333
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.


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 29, 2015 9:59 am 
Offline

Joined: Wed Aug 06, 2014 2:31 am
Posts: 50
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 :)


Top
 Profile  
Reply with quote  
PostPosted: Tue Dec 29, 2015 10:23 am 
Offline
Site Admin
User avatar

Joined: Wed Jan 02, 2013 11:38 pm
Posts: 5333
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.


Top
 Profile  
Reply with quote  
PostPosted: Wed Dec 30, 2015 11:31 am 
Offline

Joined: Wed Aug 06, 2014 2:31 am
Posts: 50
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


Top
 Profile  
Reply with quote  
PostPosted: Wed Dec 30, 2015 11:45 am 
Offline
Site Admin
User avatar

Joined: Wed Jan 02, 2013 11:38 pm
Posts: 5333
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.


Top
 Profile  
Reply with quote  
PostPosted: Thu Dec 31, 2015 3:09 am 
Offline
User avatar

Joined: Thu Jan 03, 2013 12:38 am
Posts: 5374
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".

_________________
Links to some general topics:

Compare Start Menus

Read the Search box usage guide.

I am a Windows enthusiast and helped a little with Classic Shell's testing and usability/UX feedback.


Top
 Profile  
Reply with quote  
PostPosted: Mon Jan 11, 2016 8:53 am 
Offline

Joined: Wed Aug 06, 2014 2:31 am
Posts: 50
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


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 23, 2016 5:11 pm 
Offline

Joined: Fri Sep 23, 2016 5:05 pm
Posts: 1
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


Top
 Profile  
Reply with quote  
PostPosted: Fri Sep 23, 2016 11:56 pm 
Offline
User avatar

Joined: Thu Jan 03, 2013 12:38 am
Posts: 5374
@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.

_________________
Links to some general topics:

Compare Start Menus

Read the Search box usage guide.

I am a Windows enthusiast and helped a little with Classic Shell's testing and usability/UX feedback.


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 14 posts ] 

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 17 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group, Almsamim WYSIWYG Classic Shell © 2010-2016, Ivo Beltchev.
All right reserved.