Skip to content

Commit 3c7c175

Browse files
authored
fix(user-interaction): Add hasSize guard when using a renderObject (#2946)
* Add hasSize guard when using a renderObject * Update CHANGELOG
1 parent a10bdb1 commit 3c7c175

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## Unreleased
4+
5+
### Fixes
6+
7+
- Add `hasSize` guard when using a renderObject in `SentryUserInteractionWidget` ([#2946](https://github.com/getsentry/sentry-dart/pull/2946))
8+
39
## 9.0.0-RC.1
410

511
### Fixes

flutter/lib/src/user_interaction/sentry_user_interaction_widget.dart

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -205,14 +205,13 @@ import 'package:flutter/cupertino.dart';
205205
import 'package:flutter/material.dart';
206206
import 'package:flutter/rendering.dart';
207207
import 'package:meta/meta.dart';
208+
// ignore: implementation_imports
209+
import 'package:sentry/src/sentry_tracer.dart';
208210

209211
import '../../sentry_flutter.dart';
210212
import '../widget_utils.dart';
211213
import 'user_interaction_info.dart';
212214

213-
// ignore: implementation_imports
214-
import 'package:sentry/src/sentry_tracer.dart';
215-
216215
const _tapDeltaArea = 20 * 20;
217216
Element? _clickTrackerElement;
218217

@@ -542,10 +541,14 @@ class _SentryUserInteractionWidgetState
542541
return;
543542
}
544543

544+
// Skip elements that don't have a valid render object or whose
545+
// render box hasn't been laid out yet.
545546
final renderObject = element.renderObject;
546-
if (renderObject == null) {
547+
if (renderObject == null ||
548+
(renderObject is RenderBox && !renderObject.hasSize)) {
547549
return;
548550
}
551+
549552
var hitFound = true;
550553
if (renderObject is RenderPointerListener) {
551554
final hitResult = BoxHitTestResult();

0 commit comments

Comments
 (0)