diff --git a/src/components/item/item-sliding-gesture.ts b/src/components/item/item-sliding-gesture.ts index 5024e775526..6c0590e58dc 100644 --- a/src/components/item/item-sliding-gesture.ts +++ b/src/components/item/item-sliding-gesture.ts @@ -73,7 +73,9 @@ export class ItemSlidingGesture extends PanGesture { } notCaptured(ev: any) { - this.closeOpened(); + if (!clickedOptionButton(ev)) { + this.closeOpened(); + } } closeOpened(): boolean { @@ -99,9 +101,14 @@ export class ItemSlidingGesture extends PanGesture { } function getContainer(ev: any): ItemSliding { - let ele = ev.target.closest('ion-item-sliding', true); + let ele = ev.target.closest('ion-item-sliding'); if (ele) { return (ele)['$ionComponent']; } return null; } + +function clickedOptionButton(ev: any): boolean { + let ele = ev.target.closest('ion-item-options>button'); + return !!ele; +} diff --git a/src/components/item/test/sliding/app-module.ts b/src/components/item/test/sliding/app-module.ts index e5f72e85e81..101fa1e5c23 100644 --- a/src/components/item/test/sliding/app-module.ts +++ b/src/components/item/test/sliding/app-module.ts @@ -39,6 +39,10 @@ export class E2EPage { this.list.closeSlidingItems(); } + noclose(item: ItemSliding) { + console.log('no close', item); + } + unread(item: ItemSliding) { if (item) { item.close(); diff --git a/src/components/item/test/sliding/main.html b/src/components/item/test/sliding/main.html index 8c97c289c3c..aa813a0dff7 100644 --- a/src/components/item/test/sliding/main.html +++ b/src/components/item/test/sliding/main.html @@ -31,8 +31,8 @@

HubStruck Notifications

-