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

[WASM][Regression] Upgrading from 5.1 -> 5.2 completely breaks the .PointerEntered/.PointerExited handling #16928

Closed
DierkDroth opened this issue May 29, 2024 · 24 comments · Fixed by #17633 or #18046
Assignees
Labels
difficulty/tbd Categorizes an issue for which the difficulty level needs to be defined. kind/bug Something isn't working triage/untriaged Indicates an issue requires triaging or verification

Comments

@DierkDroth
Copy link

Current behavior

I ran into an issue when upgrading my app from UNO 5.1 to UNO 5.2. It took me a while to realize that the .PointerEntered/.PointerExited is completely broken.

I asked @TopProgrammer77 to create a simple repo (see attached): Please compare the .PointerEntered/.PointerExited events which are fired for Windows (and UNO 5.1) with UNO 5.2: UNO 5.2 is completely off as it fires events whenever the mouse pointer moves from the hosting 'control' to the hosted 'control' -> wrong.

1.zip

Expected behavior

UNO 5.2 should not fall behind UNO 5.1 and should behave like WinUI.

How to reproduce it (as minimally and precisely as possible)

No response

Workaround

No response

Works on UWP/WinUI

Yes

Environment

Uno.UI / Uno.UI.WebAssembly / Uno.UI.Skia

NuGet package version(s)

No response

Affected platforms

No response

IDE

No response

IDE version

No response

Relevant plugins

No response

Anything else we need to know?

No response

@DierkDroth DierkDroth added difficulty/tbd Categorizes an issue for which the difficulty level needs to be defined. kind/bug Something isn't working triage/untriaged Indicates an issue requires triaging or verification labels May 29, 2024
@tppr7
Copy link
Contributor

tppr7 commented May 29, 2024

FYI,
On WASM (5.2) - WRONG
wasm

On Windows - Correct
windows

@DierkDroth DierkDroth changed the title [WASM][Regression] Upgrading from 5.1 -> 5.2 complete breaks the .PointerEntered/.PointerExited handling [WASM][Regression] Upgrading from 5.1 -> 5.2 completely breaks the .PointerEntered/.PointerExited handling May 29, 2024
@dr1rrb
Copy link
Member

dr1rrb commented May 30, 2024

On which browser did you test?

@DierkDroth
Copy link
Author

This was Chrome

@DierkDroth
Copy link
Author

@dr1rrb can you reproduce that regression?

Right now this prevents me from updating my app to 5.2 (or 5.3.dev for that matter)

@dr1rrb
Copy link
Member

dr1rrb commented Jun 3, 2024

Yes I'm able to repro ... pointer exit on wasm is still annoying. Will investigate ...

@DierkDroth
Copy link
Author

Thanks for looking into @dr1rrb.

I'd love to update to UNO 5.2.XX or 5.3.XX but am blocked by that issue...

@DierkDroth
Copy link
Author

@francoistanguay @dr1rrb are there any plans to get this regression addressed any time soon? Wouldn't it be an option to just revert the change which broke UNO?

I'm bit a concerned that a clear regression does not appear to take priority by the UNO team...

@francoistanguay
Copy link
Contributor

Yes, we will eventually fix it. Our years of collaboration should tell you that we rarely have regressions and we take them seriously. Clearly, for this specific issue, other things took priority.

Friendly reminder that, as you know, we have paid enterprise support to prioritize those types of issues.

@DierkDroth
Copy link
Author

DierkDroth commented Jun 24, 2024

Thanks @francoistanguay

As you may know I already 'paid' for getting many UNO issues fixed as I contracted @TopProgrammer77 to take care of quite a few of them. However, on this one I feel the UNO team is best entitled to address it as it was introduced by the UNO team AFAIK.

@francoistanguay
Copy link
Contributor

Agreed. It's in the backlog and the team been looking at it.

@DierkDroth
Copy link
Author

@francoistanguay excellent, thanks.
FYI I just ran a quick report. These PRs all had been contracted to @TopProgrammer77 by me.

I'm looking forward the fix to test the improvements coming with the latest UNO updates.

@DierkDroth
Copy link
Author

@dr1rrb thanks! You made my day!

Will this be available on 5.4-DEV only or also be backported to 5.3?

@francoistanguay
Copy link
Contributor

We still have a lot of QA/Regression testing to do on many pointer-related issues so they will only be in 5.4 (if all goes well).

@DierkDroth
Copy link
Author

Thanks for clarification @francoistanguay

@DierkDroth
Copy link
Author

@francoistanguay @dr1rrb I just tested my app with latest 5.4-DEV und found that unfortunately there still are cases where the sequence of .PointerEntered and .PointerExited is not correct. In fact the original scenario - which was simplified by @TopProgrammer77 repo above - still is not working.

@francoistanguay are you aware that such cases still exist and that's what the team still is working on? I liked to understand before I invested potentially days trying to isolate in a repo for what the team already is aware of.

Thanks in advance

@dr1rrb
Copy link
Member

dr1rrb commented Aug 20, 2024

Hey @DierkDroth I tried to run your sample (https://github.com/unoplatform/uno/files/15488699/1.zip) with latest version of uno:

<PackageVersion Include="Uno.WinUI" Version="5.4.0-dev.1532" />
<PackageVersion Include="Uno.WinUI.WebAssembly" Version="5.4.0-dev.1532" />

I see the same behavior between wasm and windows.

Could you provide more details about your issue?

@DierkDroth
Copy link
Author

DierkDroth commented Aug 21, 2024

@dr1rrb thanks for getting back to me. Yeah, that's exactly the problem: the repo above now works fine, but in my app your fix still does not work: .PointerEntered/.PointerExited still are not in correct sequence.

Since yesterday I'm trying to create a new repo to demonstrate the problem. So far to no avail, since apparently the situation in my app is way more complex than in my new repo...

@DierkDroth
Copy link
Author

DierkDroth commented Aug 21, 2024

@dr1rrb after all it was easier to come up with a new repo than I have feared. Please see below and check out for the code in MainPage.xaml.cs.

Start the repo as WindowsAppSDK app (where you could set breakpoints to see that the critical 'trace' lines are not triggered) and press F12 to get the browser console for UNO WASM to see that the critical 'trace' lines are triggered.

To reproduce the problem move the mouse quickly vertically over the grid rows.

PointerEnteredExited.zip

@DierkDroth
Copy link
Author

@dr1rrb can you reproduce the regression based on my latest repo above?

Please let me know if the regression/repo is not clear or if you needed anything else from me. Thanks

@dr1rrb
Copy link
Member

dr1rrb commented Aug 27, 2024

Hey @DierkDroth yes I'm able to repro, and also found a fix. It was not what I was expecting and took a bit longer, but it should be merged soon.

@dr1rrb dr1rrb reopened this Aug 27, 2024
@DierkDroth
Copy link
Author

Excellent! Thanks @dr1rrb

@DierkDroth
Copy link
Author

@dr1rrb I just got around running some tests and found it's still not working - not even with the PointerEnteredExited.zip repo from above

Please see the screenshot below for what I still experience in Chrome after updating the repo above to latest UNO 5.4 DEV
image
image

@dr1rrb
Copy link
Member

dr1rrb commented Sep 3, 2024

@DierkDroth The minimal version is 1618. But it seems that we do have an issue with the CI (an iOS test step is failing) so we don't have any version that as been published yet.

@DierkDroth
Copy link
Author

Thanks for clarification @dr1rrb.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
difficulty/tbd Categorizes an issue for which the difficulty level needs to be defined. kind/bug Something isn't working triage/untriaged Indicates an issue requires triaging or verification
Projects
None yet
4 participants