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: Update light-dismiss layer to pass the click through to underlying UI #917

Open
YuliKl opened this issue Jun 21, 2019 · 2 comments
Labels
area-Flyouts feature proposal New feature proposal 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

Comments

@YuliKl
Copy link

YuliKl commented Jun 21, 2019

Proposal: Update light-dismiss layer to pass the click through to underlying UI

Summary

Today, Xaml's light dismiss layer swallows the pointer click that dismisses its transient UI. So with a flyout open, when a user clicks on a button through the invisible light-dismiss layer, the button does not receive the click event. Instead, the click is used to dismiss the flyout (and its invisible light-dismiss layer). The user is forced to click on the button a second time to activate it.

App developers can specify the button in the above example as the flyout's OverlayInputPassThroughElement. However, using this property results in behavior that feels inconsistent to end-users. There's no visual indication whether the click will pass through the light dismiss layer or be swallowed by it.

A more straight-forward solution that avoids slowing down users and reduces inconsistency of experiences is for the light dismiss layer to never swallow its dismiss click.

Rationale

  • Updating Xaml's default behavior would make it more consistent with a majority of Win32 and Web experiences.
  • Passing the click will make users feel more efficient by removing the need for extra interactions to dismiss the transient UI.
  • A proposed alternative was to provide a visual indication of the light dismiss layer's existence, but that may appear too similar to modal experience. This option exists today via the LightDismissOverlayMode enum, but this smoke layer is typically only turned on for Xbox. Rather than adding more, potentially confusing, visual affordances it feels cleaner to eliminate the need for such an affordance.

Scope

Capability Priority
This proposal will allow developers to accomplish W Must
This proposal will allow end users to accomplish X Should
This proposal will allow developers to accomplish Y Could
This proposal will allow end users to accomplish Z Won't

Important Notes

This proposal was opened based on discussion #858.

Open Questions

@mdtauk
Copy link
Contributor

mdtauk commented Jun 21, 2019

I think it is great that there is an opportunity to re-examine past notions and discuss them.

I only have some small questions which could be discussed

  • Should mouse clicks be treated differently to finger taps?
  • Does the precision of the mouse mean that there is a higher likelyhood they want to invoke an action, rather than just remove the current popup/flyout?
  • Is there some kind of gesture (a swipe anywhere outside of the flyout) that could be used with touch to dismiss, but all taps get pushed through and not eaten?

@YuliKl
Copy link
Author

YuliKl commented Jun 29, 2019

  • Should mouse clicks be treated differently to finger taps?
  • Does the precision of the mouse mean that there is a higher likelyhood they want to invoke an action, rather than just remove the current popup/flyout?
  • Is there some kind of gesture (a swipe anywhere outside of the flyout) that could be used with touch to dismiss, but all taps get pushed through and not eaten?

Thank you, @mdtauk, this is a very interesting line of reasoning. I am concerned that a gesture would not be discoverable, especially because a tap and a gesture would both dismiss the flyout. The distinction between eating or not eating a tap is a very subtle one, which makes the gesture even less likely to be discovered by accident/through user experimentation.

You're highlighting a potential differentiation of the experience that we should seriously consider. One reasonable approach might be for mouse clicks to pass through the light dismiss layer while touch taps continue to be eaten by the light dismiss layer. We'd also have to consider what to do with pen input. This seems like an excellent topic for a usability study.

@YuliKl YuliKl added area-Flyouts needs-winui-3 Indicates that feature can only be done in WinUI 3.0 or beyond. (needs winui 3) labels Jul 17, 2019
@YuliKl YuliKl removed their assignment Jul 17, 2019
@jevansaks jevansaks added the team-Controls Issue for the Controls team label Nov 7, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-Flyouts feature proposal New feature proposal 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

3 participants