unoplatform / uno

Open-source platform for building cross-platform native Mobile, Web, Desktop and Embedded apps quickly. Create rich, C#/XAML, single-codebase apps from any IDE. Hot Reload included! 90m+ NuGet Downloads!!
https://platform.uno
Apache License 2.0
9.03k stars 733 forks source link

Gesture recognizer inconsistent state warnings #7646

Open jeromelaban opened 2 years ago

jeromelaban commented 2 years ago

It's failing to draw the new window placement. I'm getting the following in the log:

fail: Windows.UI.Input.GestureRecognizer[0] TabViewItem-124050 Inconsistent state, we already have a pending gesture for a pointer that is going down. Abort the previous gesture.

VM344:1 fail: Windows.UI.Input.GestureRecognizer.Manipulation[0] Invalid manipulation state: We are receiving a down for the second time for the same pointer!This is however common when using iOS emulator with VNC where we might miss some pointer events due to focus being stole by debugger, in that case you can safely ignore this message.

Originally posted by @peternary in https://github.com/unoplatform/uno/issues/7008#issuecomment-963406378

DierkDroth commented 2 years ago

@jeromelaban where are we at on resolving this issue?

jeromelaban commented 2 years ago

We have not progressed on fixing this issue yet, as we do not have clear repro steps as mentioned on the other issue.

DierkDroth commented 2 years ago

Ok, I'll poke @peternary if he could get something reproducible.

DierkDroth commented 2 years ago

@jeromelaban @peternary reported that this needed to be resolved first. Then he could tell/test if issue above actually already might be addressed by the latest UNO release.

jeromelaban commented 2 years ago

Thanks. Then we do not have any update to share at this point, we'll let you know when we do.

DierkDroth commented 2 years ago

Sorry, @jeromelaban I put in wrong link on my last post. I fixed it and here is the issue again which needed to be fixed before @peternary could resume testing.

MartinZikmund commented 4 weeks ago

Happens in other contexts as well, see discussion https://github.com/unoplatform/uno/discussions/18563 - includes a repro of the issue

Newbe question/bug(?) incoming Can someone review this and tell me what am I doing wrong?

Since WinSDK is out of order at the moment, i am targeting Desktop in visual studio 2022 Same behaviour in xaml and c#-markup using mvux

terminal tells me: "The specified framework 'Microsoft.WindowsDesktop.App' is not present in the previously loaded runtime. fail: Microsoft.UI.Input.GestureRecognizer[0] Microsoft.UI.Xaml.Controls.ScrollContentPresenter Inconsistent state, we already have a pending gesture for a pointer that is going down. Abort the previous gesture. fail: Microsoft.UI.Input.GestureRecognizer[0] Microsoft.UI.Xaml.Controls.ScrollContentPresenter Inconsistent state, we already have a pending gesture for a pointer that is going down. Abort the previous gesture."

How to reproduce that: clicked on 1. the dropdown button 2. the first dropdownitem which haves the new command and after no pop up the seconditem... each item fail message... I have no clue what I should correct, but might be related to the async?

Untill now I did only vb.net with winforms and never done anything async

Thanks in advance for your help! Kind regards

DevTKSS commented 3 weeks ago

On my case (last one posted here) may consider also a connection to the behaviour i expierienced on the same repo, also after including a first Parameter with xamlroot type, that the contentdialog is not shown which is the fail throwing element in my Project. Maybe that helps with detecting the source of the issue

Will try to include my try of doing a IXAMLRootProvider because it seems to be not possible to provide this type in task parameters. For C# markup using mvux schema(which one is the issue here? Connection?) there is no Dokumentation in the references. Idea would be, to check if that maybe wrong implementation of information providing might be a error source on my code so its not just coming from this? It would be quite logic that if it thinks a contentdialog is still shown, to throw a "you are not ready with that dialog!" Thing seeing that its only possible to have one contentdialog at a time if i read reference right. At this time i am still searching for the right place to add a documentation request so maybe in the future there could be a more precise example for contentdialog with c#+mvux maybe using navigator, but without having to use xaml in a c#markup solutionšŸ¤” in uno.Extensions.Navigator.UI is a ContentDialogNavigator but no idea if and how this could be used

DevTKSS commented 2 weeks ago

Hey there! I did some testing yesterday in a xaml markup application to this issue with unvalid state of (in my case) ScrollContentPresenter - Gesture Recognizer and might have some step forward on the reason of that, but I think I missed something in installing the events, that enables me to check what is happening before this fail appears and would need some help on that if possible. Also added a lister for the scrollContentPresenter thats in MainPage, but the Console.WriteLine do not like to give me the x:Name I added or the explicit type (if its derrived from this scp).Name, but also no changed output. (Note: Yes, I changed the line for giving the name to type, if you want to tell that getType().Name is not providing the x:Name. I know that :) )

I also installed two Exception handlers and exception handle service for app wide unhandled exception/task exceptions, but seems like "fail" is not catched by that. Could you tell what to use to catch fail in uno app for getting more information to this fail?

Repo to that: https://github.com/DevTKSS/MyUnoXamlApp.git

Interesting side note:

DevTKSS commented 2 weeks ago

On Regular Button click event it seems to not longer happen on my xaml app. Done changes: button.click>ButtonClick Eventhandler>call the ShowMyDialog async void (maybe the async is causing the trouble if its called from xaml directly?)

Fail occours now only if I am calling a dialog from a dropdownbutton which will collapse and maybe cause the invalid state on my application. Will try to get help on that in the discussion or doscord area because this is most likly beeing caused of not waiting until it is collapsed or it might have to be stopped from collapsing in order to not get this faul trown. If you like to take a look onto the changes its the same Repo like linked before.