Open MartinZikmund opened 4 years ago
@dr1rrb is this an existing issue ?
Hum I don't think that we already have a an issue for that.
I've tested that updating the template (visual states) while pointer is pressed would result in acceptable pointers events sequence, but moving elements over another element while pointer is pressed is kind of things I've classified as "stretch case" and didn't validated it.
Thinking about it, it's totally makes sense: When we press the pointer, the Button
captures the pointer and it will then receive all pointer events until release. On UWP, they are probably validating that the element is not covered when the pointer is released ... but I'm not sure that we are able to validate that with uno yet (it would requires an API to get all elements at a given coordinate)
Tested now that this is still a problem, even on Skia
Current behavior
This issue is very specific but affects the functionality of
SplitButton
control in Uno (#2885).Suppose the following XAML:
Two stretched buttons in two grid columns.
The code-behind is as follows:
On any pointer event, the right button is spanned to cover both columns of the grid. Observe that under Uno, for example on Android and iOS, when the left button area is tapped, Pointer Entered event is called (which makes the right button span), but after this left button's
Click
event is called.Note this affects only touch. Mouse and pen will trigger pointer moved before user is able to click, so the button will already be spanned. So macOS is the only one safe here :-D .
Expected behavior
On UWP for tap, Pointer entered event is called, which makes the right button span and right button's
Click
event is called.How to reproduce it (as minimally and precisely as possible)
See above.
Environment
Nuget Package: latest
Package Version(s): dev
Affected platform(s):
Visual Studio:
Relevant plugins:
Anything else we need to know?