Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal: Click on cascading menu items to instantly open the cascading menu #939

Closed
Poopooracoocoo opened this issue Jun 25, 2019 · 18 comments
Labels
area-Menus bug Something isn't working needs-winui-3 Indicates that feature can only be done in WinUI 3.0 or beyond. (needs winui 3) team-Controls Issue for the Controls team
Milestone

Comments

@Poopooracoocoo
Copy link

Poopooracoocoo commented Jun 25, 2019

Proposal: We should be able to click on cascading menu items to instantly open the cascading menu

Summary

We should be able to click on cascading menu items to instantly open the cascading menu.

Rationale

  • Consistency with win32 menus
  • It makes things faster and feel faster

Scope

Capability Priority
Users can click on an item in a MenuFlyout that reveals another menu instantly Must

Important Notes

The animation makes menus feel slow. This is something to consider but is worth its own issue.

@Poopooracoocoo Poopooracoocoo added the feature proposal New feature proposal label Jun 25, 2019
@YuliKl
Copy link

YuliKl commented Jun 25, 2019

@Poopooracoocoo, I don't think I'm understanding the proposal. Can you point me to a specific example of an app whose experience will be improved by making this change?

@jevansaks
Copy link
Member

There's a small (but noticeable) delay between when you hover over a parent menu item. In Win32 menus if you click the menu would open immediately, in XAML it doesn't.

I agree we should do this for consistency. Should be a pretty straightforward change once we're able to make changes in WinUI 3.0.

@jevansaks jevansaks added area-Commanding AppBar, UICommand, MVVM, etc bug Something isn't working needs-winui-3 Indicates that feature can only be done in WinUI 3.0 or beyond. (needs winui 3) and removed feature proposal New feature proposal labels Jun 26, 2019
@jevansaks jevansaks added area-Menus and removed area-Commanding AppBar, UICommand, MVVM, etc labels Jun 26, 2019
@Poopooracoocoo

This comment was marked as off-topic.

@jevansaks
Copy link
Member

I filed this as a feature request instead of a bug even though I thought of it as something that was overlooked and therefore a bug.

No worries! It's borderline for me too, but since there's very strong prior art in this area I think it's easy to follow suit.

@Poopooracoocoo

This comment was marked as spam.

@github-actions
Copy link

This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 5 days.

@Poopooracoocoo

This comment was marked as off-topic.

@fredemmott
Copy link

This feels beyond 'slow' in Windows App SDK v1.4.2, including in the WinUI3 gallery; it is taking 2-3 seconds of hover to open with no visual feedback, so I thought cascading menus were completely broken.

Can be reproduced with the 'cascading menus' example on the menu flyouts page of WinUI3 gallery.

image
image

@kmgallahan
Copy link
Contributor

@fredemmott I see no 2-3 second delay. In fact, the menu opens so quickly on hover that I don't think I can even click before the animation has finished.

Do you have another machine to test on?

@fredemmott
Copy link

@fredemmott I see no 2-3 second delay. In fact, the menu opens so quickly on hover that I don't think I can even click before the animation has finished.

Do you have another machine to test on?

I'm seeing this on two machines with Windows 10, z790, 13900k, and RTX4090
I am not seeing it (the flyout opens quickly) on a machine with the same version of windows 10, z370, 8700k, and RTX4070

All 3 machines are running Win 10 22H2 1904.3693 with all windows updates, and the 546.17 nvidia driver

@kmgallahan
Copy link
Contributor

kmgallahan commented Dec 2, 2023

I think this might be related to:

microsoft/terminal#14756

microsoft/terminal#15545

@ranjeshj because I don't know who else to mention regarding how to further investigate this.

@fredemmott
Copy link

From reading those comments, I tried turning "Show Animations in Windows" off in the windows control panel (screenshot) - interestingly, this reliably makes things worse: 5-6 seconds. Turning it back on gets me back to 2-3 seconds.

image

@kmgallahan
Copy link
Contributor

kmgallahan commented Dec 2, 2023

Unless/until someone from Microsoft recommends a better way, my typical approach to diagnosing different behaviors on different machines is to try to find differences and eliminate them one at a time. Painful, but sometimes gets it done.

Maybe check monitor setup including resolution, display scaling, text scaling. Kill all 3rd party programs, in particular anything that uses drivers or monitors other running software (antivirus, work activity monitoring, Grammarly, etc.).

For reference, I'm on W10 with a 2700K and GTX 580 (lul).

@fredemmott
Copy link

fredemmott commented Dec 2, 2023

This appears to be a problem with high refresh rates:

slow machines:

  • 100% scaling, 1080p 240hz gsync on, windows Variable Refresh Rate off
    • disabling g-sync: no change
    • enabling windows VRR: no change
    • reducing from 240hz to 60hz: FIXED, regardless of VRR or gsync settings
  • 150% scaling, 5120x1440 240hz gsync on, windows VRR off
    • disabling g-sync: no change
    • enabling windows VRR: no change
    • reducing from 240hz to 60hz: FIXED, regardless of VRR or gsync settings

Fast machine:

  • 150% scaling, 3x 4K 60hz fixed

All:

  • Hardware assisted GPU scheduling off
  • No third-party software or AV, no monitoring, no third-party background services other than essential drivers and 1password

With my limited options (screenshot):

  • very fast (a small fraction of a second) at up to and including 143.981hz
  • multiple seconds as soon as I switch to 200hz or above

image

@jeremy-visionaid
Copy link

@fredemmott Nice catch with the refresh rate. I agree with the other comments here - it's so laggy at 2-3 seconds that you think it's broken. Setting my screen refresh rate to 60 Hz makes the pop up much faster.

@Poopooracoocoo Poopooracoocoo changed the title Proposal: We should be able to click on cascading menu items to instantly open the cascading menu Proposal: Click on cascading menu items to instantly open the cascading menu Feb 29, 2024
@gegao18
Copy link

gegao18 commented Mar 22, 2024

@fredemmott Nice find! Yes, there is an issue with variable refresh rate displays and how WinUI 3 keeps track of time that causes multi-second delays in DispatcherTimers firing. This is tracked by #9371, and we have a fix coming in 1.5.2. This issue (and #8921) tracks the slight delay in opening nested menus with a mouse click, and this delay exists regardless of the type of device running the app.

@fredemmott
Copy link

@gegao18 to be clear, this is at high refresh rates - enabling/disabling variable refresh rate does no difference

@bkudiess
Copy link
Contributor

This was fixed internally and will be available in WASDK 1.7

@codendone codendone added this to the WinAppSDK 1.7 milestone Aug 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-Menus bug Something isn't working needs-winui-3 Indicates that feature can only be done in WinUI 3.0 or beyond. (needs winui 3) team-Controls Issue for the Controls team
Projects
None yet
Development

No branches or pull requests

9 participants