Closed
Let IgxTouchManager pointerDown veto a gesture to avoid blocking scroll#17466
Conversation
Replace HammerGesturesManager with native pointer events in all components: - Carousel: native pointerdown/pointermove/pointerup for pan/swipe/tap - Navigation Drawer: native pointer events on document for swipe/pan - List Item: native pointer events replacing @HostListener pan bindings - Time Picker: native pointer events for vertical pan scrolling - Grid Cells: native touchend-based double-tap detection for iOS Infrastructure cleanup: - Remove HammerGesturesManager and touch-annotations exports from core - Remove hammerjs/@types/hammerjs from package.json dependencies - Remove hammer from all karma configs, angular.json, tsconfig files - Update ng-add schematic: remove addHammer option and install logic - Clean up igniteui-angular-extras ng-package.json Closes #17358
Update test files to remove HammerGesturesManager, HammerInput, HammerOptions imports and mocking. Remove hammer-specific test cases from ng-add schematic tests. Update navigation drawer gesture handler tests to use plain objects instead of HammerInput type. Also update CHANGELOG.md with breaking change note for Hammer.js removal.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…om/IgniteUI/igniteui-angular into copilot/remove-hammerjs-dependency
…nt-17359 Add spec coverage for time picker touch pan-to-scroll gesture
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…om/IgniteUI/igniteui-angular into copilot/remove-hammerjs-dependency
Copilot
AI
changed the title
[WIP] Fix code based on review comments
Let IgxTouchManager pointerDown veto a gesture to avoid blocking scroll
Jul 27, 2026
ChronosSF
marked this pull request as ready for review
July 27, 2026 15:00
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
IgxTouchManagerstarts tracking on every acceptedpointerdownand, via its non-passivetouchmovelistener, callspreventDefault()while tracking. When attached todocument(e.g. Navigation Drawer), this cancels normal page scrolling even when the consumer would ignore the gesture. Addresses the review comments in pullrequestreview-4787557464.Changes
core/src/core/touch.tspointerDowncallback signature is now(event: IgxGestureEvent) => boolean | void.pointerDownreturnsfalse, the manager stops tracking immediately via a new_stopTracking()helper — resets_tracking/_panStarted/_pointerId/_startTargetand best-effort releases pointer capture — sotouchmoveno longer suppresses scrolling for vetoed gestures.navigation-drawer/.../navigation-drawer.component.tspanStart(wired as the drawer'spointerDown) now returnsboolean:truewhen a pan is accepted (drawer open, or touch starts withinmaxEdgeZone),falseotherwise (gestures disabled, pinned, non-touch, or touch outside the edge zone), letting the manager bail out and leave scrolling intact.Returning nothing preserves the previous behavior, so other consumers are unaffected.