Replaced touch mechanizm for Windows Phone. #2145

Closed
wants to merge 5 commits into
from

Conversation

Projects
None yet
5 participants

ebatiano commented Dec 3, 2013

Replaced Windows.Phone.Input.Interop manipulation mechanism to Touch.Frame reported, due to loosing PointerReleased events and leaving ghost touches in TouchPanel. Issue #2140.

@ebatiano ebatiano Replaced **Windows.Phone.Input.Interop** manipulation mechanism to **…
…Touch.Frame reported**, due to loosing PointerReleased events and leaving ghost touches in TouchPanel. Issue #2140.
ca2a81d
Member

mgbot commented Dec 3, 2013

Can one of the admins verify this patch?

Member

mgbot commented Dec 3, 2013

Can one of the admins verify this patch?

Member

Nezz commented Dec 4, 2013

By the way, does #2109 not solve the ghost touches for you?

deluksic said:

I did some tests and I can say that this also solves the touch ghosting issue I had: #1922 (comment)

ebatiano commented Dec 4, 2013

No, it doesn't. I made this change (#2109) and created simple project displaying all touch points, and ghost touches remained.

I wrote couple days ago about that in #2140.

It's easy to repeat this bug by pressing screen with more than 5 fingers (On Lumias) at one time. Direct3DInterop mechanism goes crazy and doesn't send PointerReleased events.

Due to this:

http://stackoverflow.com/questions/17306881/mismatch-between-pointerpressed-and-pointerreleased-events

bug is in Direct3DInterop implementation of touch handling.

My fix is based on native silverlight, most responsive touch handling mechanism, which is Touch.FrameReported.

After that change, I fired up my test project (and also my current primary project) and it works now without leaving ghost touches,

deluksic commented Dec 5, 2013

Weird, I ran a test app on my htc 8x and could not get any ghost touches to appear even while tapping with 10 fingers at once.

ebatiano commented Dec 5, 2013

For me was weird why changing method from static to non-static would make a difference in ths case. There's only one surface, so there should be no difference. Anyway it didn't fix ghost touches when testing on Lumia 520.

Member

Nezz commented Apr 21, 2014

I tried this in our game and noticed that the touch positions are according to the orientation of the screen, while the previous method was always reporting in portrait (at least with DrawingSurfaceBackgroundGrid).
That means that this is a breaking change.

Owner

tomspilman commented May 22, 2014

Touch is a very delicate chunk of code... between this PR having a breaking change and it not being able to merge... seems like we should close this PR.

To deal with these sorts of issues i proposed mono#2579 for creating a set of TouchPanel unit tests. This will allow us to make these sorts of fixes without breaking existing correct behaviors.

tomspilman closed this May 22, 2014

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment