summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Blasche <alexander.blasche@digia.com>2014-10-21 16:01:53 +0200
committerAlex Blasche <alexander.blasche@digia.com>2014-10-22 11:46:59 +0200
commit4aa90d773139d0ac3279514faef8ba0e285ea640 (patch)
treeaa7fc161359b34bd0ccec7fd61bfe764d09104cb
parenteebf55a6919dff9eec4dd8529223aae6f6d0f569 (diff)
downloadqtlocation-4aa90d773139d0ac3279514faef8ba0e285ea640.tar.gz
Ensure that rounding errors are considered by QGeoCircle::contains
Task-number: QTBUG-41447 Change-Id: I9837fab4b7132f406f69ecbe6c0e5f383345a516 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
-rw-r--r--src/positioning/qgeocircle.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/positioning/qgeocircle.cpp b/src/positioning/qgeocircle.cpp
index d5a3bc60..459ce824 100644
--- a/src/positioning/qgeocircle.cpp
+++ b/src/positioning/qgeocircle.cpp
@@ -204,7 +204,12 @@ bool QGeoCirclePrivate::contains(const QGeoCoordinate &coordinate) const
if (!isValid() || !coordinate.isValid())
return false;
- return center.distanceTo(coordinate) <= radius;
+ // see QTBUG-41447 for details
+ qreal distance = center.distanceTo(coordinate);
+ if (qFuzzyCompare(distance, radius) || distance <= radius)
+ return true;
+
+ return false;
}
/*!