internal void _resolve(GestureArenaMember member, GestureDisposition disposition) { if (this._resolved) { return; } if (disposition == GestureDisposition.rejected) { this._members.Remove(member); member.rejectGesture(this._pointer); if (this._members.isEmpty()) { this._entry.resolve(disposition); } } else { this._winner = this._winner ?? this._owner.captain ?? member; this._entry.resolve(disposition); } }
internal void _resolve(GestureArenaMember member, GestureDisposition disposition) { if (_resolved) { return; } if (disposition == GestureDisposition.rejected) { _members.Remove(member); member.rejectGesture(_pointer); if (_members.isEmpty()) { _entry.resolve(disposition); } } else { D.assert(disposition == GestureDisposition.accepted); _winner = _winner ?? _owner.captain ?? member; _entry.resolve(disposition); } }
internal void _resolve(int pointer, GestureArenaMember member, GestureDisposition disposition) { _GestureArena state; if (!this._arenas.TryGetValue(pointer, out state)) { return; } D.assert(this._debugLogDiagnostic(pointer, () => $"{(disposition == GestureDisposition.accepted ? "Accepting" : "Rejecting")}: {member}")); D.assert(state.members.Contains(member)); if (disposition == GestureDisposition.rejected) { state.members.Remove(member); member.rejectGesture(pointer); if (!state.isOpen) { this._tryToResolveArena(pointer, state); } } else { if (state.isOpen) { state.eagerWinner = state.eagerWinner ?? member; } else { D.assert(this._debugLogDiagnostic(pointer, () => $"Self-declared winner: {member}")); this._resolveInFavorOf(pointer, state, member); } } }