From 0a790d805e51747db2bfcce8b482af12673c51ba Mon Sep 17 00:00:00 2001 From: Franciszek S Wawrzak Date: Mon, 24 Nov 2025 12:47:40 +0100 Subject: [PATCH 1/4] add mouse and drag events to Window and Document event streams helper --- web/lib/src/helpers/events/events.dart | 81 +++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 2 deletions(-) diff --git a/web/lib/src/helpers/events/events.dart b/web/lib/src/helpers/events/events.dart index 6a966696..de160eda 100644 --- a/web/lib/src/helpers/events/events.dart +++ b/web/lib/src/helpers/events/events.dart @@ -277,8 +277,85 @@ extension WindowEventGetters on Window { Stream get onPopState => EventStreamProviders.popStateEvent.forTarget(this); - Stream get onTouchMove => - EventStreamProviders.touchMoveEvent.forTarget(this); + Stream get onMouseDown => + EventStreamProviders.mouseDownEvent.forTarget(this); + + Stream get onMouseEnter => + EventStreamProviders.mouseEnterEvent.forTarget(this); + + Stream get onMouseLeave => + EventStreamProviders.mouseLeaveEvent.forTarget(this); + + Stream get onMouseMove => + EventStreamProviders.mouseMoveEvent.forTarget(this); + + Stream get onMouseOut => + EventStreamProviders.mouseOutEvent.forTarget(this); + + Stream get onMouseOver => + EventStreamProviders.mouseOverEvent.forTarget(this); + + Stream get onMouseUp => + EventStreamProviders.mouseUpEvent.forTarget(this); + + Stream get onDrag => + EventStreamProviders.dragEvent.forTarget(this); + + Stream get onDragEnd => + EventStreamProviders.dragEndEvent.forTarget(this); + + Stream get onDragEnter => + EventStreamProviders.dragEnterEvent.forTarget(this); + + Stream get onDragLeave => + EventStreamProviders.dragLeaveEvent.forTarget(this); + + Stream get onDragOver => + EventStreamProviders.dragOverEvent.forTarget(this); + + Stream get onDragStart => + EventStreamProviders.dragStartEvent.forTarget(this); +} + +extension DocumentEventGetters on Document { + Stream get onMouseDown => + EventStreamProviders.mouseDownEvent.forTarget(this); + + Stream get onMouseEnter => + EventStreamProviders.mouseEnterEvent.forTarget(this); + + Stream get onMouseLeave => + EventStreamProviders.mouseLeaveEvent.forTarget(this); + + Stream get onMouseMove => + EventStreamProviders.mouseMoveEvent.forTarget(this); + + Stream get onMouseOut => + EventStreamProviders.mouseOutEvent.forTarget(this); + + Stream get onMouseOver => + EventStreamProviders.mouseOverEvent.forTarget(this); + + Stream get onMouseUp => + EventStreamProviders.mouseUpEvent.forTarget(this); + + Stream get onDrag => + EventStreamProviders.dragEvent.forTarget(this); + + Stream get onDragEnd => + EventStreamProviders.dragEndEvent.forTarget(this); + + Stream get onDragEnter => + EventStreamProviders.dragEnterEvent.forTarget(this); + + Stream get onDragLeave => + EventStreamProviders.dragLeaveEvent.forTarget(this); + + Stream get onDragOver => + EventStreamProviders.dragOverEvent.forTarget(this); + + Stream get onDragStart => + EventStreamProviders.dragStartEvent.forTarget(this); } extension ElementCustomEvents on Element { From 328be72b83a274330ac4e29bf73f1ace8e18c798 Mon Sep 17 00:00:00 2001 From: Franciszek S Wawrzak Date: Mon, 24 Nov 2025 12:56:06 +0100 Subject: [PATCH 2/4] add touch events to window and document event streams helpers --- web/lib/src/helpers/events/events.dart | 36 ++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/web/lib/src/helpers/events/events.dart b/web/lib/src/helpers/events/events.dart index de160eda..7c968722 100644 --- a/web/lib/src/helpers/events/events.dart +++ b/web/lib/src/helpers/events/events.dart @@ -277,6 +277,24 @@ extension WindowEventGetters on Window { Stream get onPopState => EventStreamProviders.popStateEvent.forTarget(this); + Stream get onTouchCancel => + EventStreamProviders.touchCancelEvent.forTarget(this); + + Stream get onTouchEnd => + EventStreamProviders.touchEndEvent.forTarget(this); + + Stream get onTouchEnter => + EventStreamProviders.touchEnterEvent.forTarget(this); + + Stream get onTouchLeave => + EventStreamProviders.touchLeaveEvent.forTarget(this); + + Stream get onTouchMove => + EventStreamProviders.touchMoveEvent.forTarget(this); + + Stream get onTouchStart => + EventStreamProviders.touchStartEvent.forTarget(this); + Stream get onMouseDown => EventStreamProviders.mouseDownEvent.forTarget(this); @@ -318,6 +336,24 @@ extension WindowEventGetters on Window { } extension DocumentEventGetters on Document { + Stream get onTouchCancel => + EventStreamProviders.touchCancelEvent.forTarget(this); + + Stream get onTouchEnd => + EventStreamProviders.touchEndEvent.forTarget(this); + + Stream get onTouchEnter => + EventStreamProviders.touchEnterEvent.forTarget(this); + + Stream get onTouchLeave => + EventStreamProviders.touchLeaveEvent.forTarget(this); + + Stream get onTouchMove => + EventStreamProviders.touchMoveEvent.forTarget(this); + + Stream get onTouchStart => + EventStreamProviders.touchStartEvent.forTarget(this); + Stream get onMouseDown => EventStreamProviders.mouseDownEvent.forTarget(this); From 3b21f47d86bd539a8ae0054b9bee4877d9848753 Mon Sep 17 00:00:00 2001 From: Franciszek Szczepan Wawrzak Date: Mon, 24 Nov 2025 19:09:21 +0100 Subject: [PATCH 3/4] fix format --- web/lib/src/helpers/events/events.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/lib/src/helpers/events/events.dart b/web/lib/src/helpers/events/events.dart index 7c968722..ab312ced 100644 --- a/web/lib/src/helpers/events/events.dart +++ b/web/lib/src/helpers/events/events.dart @@ -353,7 +353,7 @@ extension DocumentEventGetters on Document { Stream get onTouchStart => EventStreamProviders.touchStartEvent.forTarget(this); - + Stream get onMouseDown => EventStreamProviders.mouseDownEvent.forTarget(this); From 17471b99277caa48f340aef12b15b5ad5c9ebaf5 Mon Sep 17 00:00:00 2001 From: Franciszek Szczepan Wawrzak Date: Mon, 24 Nov 2025 19:26:14 +0100 Subject: [PATCH 4/4] add changelog entry --- web/CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/web/CHANGELOG.md b/web/CHANGELOG.md index 2e9df212..28c66938 100644 --- a/web/CHANGELOG.md +++ b/web/CHANGELOG.md @@ -6,6 +6,8 @@ - Fixed generation of variadic arguments to generate 4 optional parameters. - Removed all `@Deprecated` members. - Added `URL.toDart` and `Uri.toJS` extension methods. +- Added missing `Document` and `Window` pointer event getters: `onDrag*`, + `onTouch*`, `onMouse*`. ## 1.1.1