backbone icon indicating copy to clipboard operation
backbone copied to clipboard

Starting a drag event and finishing it outside the window still results in a crash

Open Dev-Owl opened this issue 3 years ago • 3 comments

ListMixin.firstWhere (dart:collection/list.dart:167)
Input.onPointerRemoved (/Users/christian/Development/backbone/lib/prelude/input/mod.dart:97)
_BackboneGameWidgetState._handleEvent (/Users/christian/Development/backbone/lib/widget.dart:88)
PointerRouter._dispatch (/Users/christian/Development/flutter/packages/flutter/lib/src/gestures/pointer_router.dart:98)
PointerRouter._dispatchEventToRoutes.<anonymous closure> (/Users/christian/Development/flutter/packages/flutter/lib/src/gestures/pointer_router.dart:143)
_LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:617)
PointerRouter._dispatchEventToRoutes (/Users/christian/Development/flutter/packages/flutter/lib/src/gestures/pointer_router.dart:141)
PointerRouter.route (/Users/christian/Development/flutter/packages/flutter/lib/src/gestures/pointer_router.dart:133)
GestureBinding.dispatchEvent (/Users/christian/Development/flutter/packages/flutter/lib/src/gestures/binding.dart:423)
RendererBinding.dispatchEvent (/Users/christian/Development/flutter/packages/flutter/lib/src/rendering/binding.dart:337)
GestureBinding._handlePointerEventImmediately (/Users/christian/Development/flutter/packages/flutter/lib/src/gestures/binding.dart:395)
GestureBinding.handlePointerEvent (/Users/christian/Development/flutter/packages/flutter/lib/src/gestures/binding.dart:357)
GestureBinding._flushPointerEventQueue (/Users/christian/Development/flutter/packages/flutter/lib/src/gestures/binding.dart:314)
GestureBinding._handlePointerDataPacket (/Users/christian/Development/flutter/packages/flutter/lib/src/gestures/binding.dart:295)
_invoke1 (dart:ui/hooks.dart:167)
PlatformDispatcher._dispatchPointerDataPacket (dart:ui/platform_dispatcher.dart:341)
_dispatchPointerDataPacket (dart:ui/hooks.dart:94)

Dev-Owl avatar Oct 03 '22 12:10 Dev-Owl

@skyne98 Please have a look at this, the current combination of Flutter & Flame events are quite hard to understnad (at least for me) you wrote the system and I guess you have a better idea how to deal with it.

I noticed that the pointer (id) in the remove event is always 0 and that the issue happens because the existing pointer can't be found due to its expected states. I can't really answer why it's zero all the time and why we just check the two states of PointerStateHover and PointerStateAdded

Dev-Owl avatar Feb 11 '23 12:02 Dev-Owl

Might be addressed by my PR here 👀 Will test on my branch and see if it still fails there! It now uses only specific Flutter events, which are all children of PointerEvent.

skyne98 avatar Feb 14 '23 12:02 skyne98

Looks like it does fix it, upon merging the PR, @Dev-Owl, can you please confirm the issue doesn't happen anymore and close this (#35) and #68?

skyne98 avatar Feb 14 '23 12:02 skyne98