You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Dispatch tap and pointer gestures through the new public MAUI APIs
dotnet/maui#37420 and #37671 made most of the gesture dispatch surface public.
Measured by reflecting over the shipped assemblies rather than reading source:
11.0.0-preview.7.26418.3 Tap (none) Pointer (none) LongPress (none)
11.0.0-preview.7.26426.4 Tap SendTapped
Pointer SendPointerEntered/Exited/Moved/Pressed/Released
LongPress (none)
So the package pin moves from 26418.3 to 26426.4 (nuspec commit bedd1b18b7). All seven
MAUI packages were confirmed present at that stamp before bumping, and the pin is kept
in sync in eng/baselines.json as that file requires.
Tap and pointer now dispatch for real. Long press is the only gesture this backend can
detect but not raise: SendLongPressed and SendLongPressing are still internal, with no
ILongPressGestureController alternative. That is now stated as exactly two named members
rather than a blanket "tap, long-press and pointer are blocked".
Drag and drop also changed reason. Their dispatch members are public as of 26426.4, so
they are no longer dispatch-blocked - they remain unsupported purely because NUI has no
view-level drag/drop that maps onto the per-view recognizer semantics. The matrix now
says so.
Position resolution
-------------------
The new members take Func<IElement?, Point?> rather than a point, so MAUI can ask for a
position relative to an arbitrary element. The Tizen detectors report a view-local
position, which is returned for the view itself and for the null request. For any other
element the resolver returns null - MAUI's own encoding of "cannot be determined" -
because translating between two elements needs both on-screen origins, which requires a
native call per element that the Tizen platform layer does not expose here. A
plausible-looking wrong coordinate would be worse.
PlatformPointerEventArgs is left null and ButtonsMask at its default. Both are optional,
and NUI reports neither for touch and hover, so fabricating them would mislead.
Testing
-------
158 tests, up from 150. The dispatcher tests use real recognizers, so they prove the
public path delivers events rather than merely compiling; verified by stubbing the
SendTapped call out and watching three tests fail.
LongPressSendMembersAreStillInternalUpstream asserts by reflection that the two named
members are absent from BindingFlags.Public and present under NonPublic, so the support
matrix's central claim cannot rot. It fails when upstream opens the API.
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
| Dispatch through real MAUI recognizers, and the blocked gestures|`tests/Controls.UnitTests/TizenGestureDispatcherTests.cs`|
231
+
| Dispatch through real MAUI recognizers, position resolution, and the one blocked gesture|`tests/Controls.UnitTests/TizenGestureDispatcherTests.cs`|
204
232
| DI registration and lifetimes |`tests/Controls.UnitTests/TizenServiceRegistrationTests.cs`|
205
233
| NUI adapters under `Core/Platform/Nui`| Type-checked against `Samsung.Tizen.Ref.API15` and `Tizen.UIExtensions.NUI` 0.9.2 by `tests/Maui.Tizen.Controls.RefPackCompile`; behaviour needs a device |
Copy file name to clipboardExpand all lines: eng/baselines.json
+4-3Lines changed: 4 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -57,10 +57,11 @@
57
57
"note": "This is the ONLY ref that still carries src/Compatibility Tizen sources (70 files). They were deleted upstream on net11.0, so a net11.0-only baseline loses them silently."
"role": "Public-feed MAUI package set for net11. Used when building against published MAUI packages rather than source.",
64
+
"note": "Moved from 11.0.0-preview.7.26418.3 (nuspec commit 0b3bb76d2d) to pick up the public gesture dispatch APIs from dotnet/maui#37420 and #37671. 26418.3 predates both merges, so TapGestureRecognizer.SendTapped and the PointerGestureRecognizer send members are internal there. LongPressGestureRecognizer.SendLongPressed/SendLongPressing remain internal even in 26426.4."
0 commit comments