summaryrefslogtreecommitdiff
path: root/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
diff options
context:
space:
mode:
authorQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-03-31 03:03:33 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-03-31 03:03:33 +0200
commit05659943df25a4ab6edcbfc8ebaa6bc23a2eb72f (patch)
tree4e29910b35b6ce0a067673e2d3a87eb81cb540d5 /src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
parent29816a3aaa3f368422a3b19983add62673bb6960 (diff)
parentccfcf832862582cd0e7c6b33547c9bf9d3b47240 (diff)
downloadqtlocation-05659943df25a4ab6edcbfc8ebaa6bc23a2eb72f.tar.gz
Merge remote-tracking branch 'origin/5.14' into 5.15v5.15.0-beta3
Change-Id: I8b84b78bf234556b7162066b8401630da2afb311
Diffstat (limited to 'src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp')
-rw-r--r--src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp b/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
index a9cc164f..28a405c3 100644
--- a/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
+++ b/src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
@@ -115,6 +115,7 @@ enum class InitializationState {
class QGeoPositionInfoSourceWinRTPrivate {
public:
ComPtr<IGeolocator> locator;
+ mutable ComPtr<IGeolocatorStatics> statics;
QTimer periodicTimer;
QTimer singleUpdateTimer;
QGeoPositionInfo lastPosition;
@@ -638,21 +639,21 @@ HRESULT QGeoPositionInfoSourceWinRT::onStatusChanged(IGeolocator *, IStatusChang
bool QGeoPositionInfoSourceWinRT::requestAccess() const
{
+ Q_D(const QGeoPositionInfoSourceWinRT);
qCDebug(lcPositioningWinRT) << __FUNCTION__;
GeolocationAccessStatus accessStatus;
- static ComPtr<IGeolocatorStatics> statics;
ComPtr<IAsyncOperation<GeolocationAccessStatus>> op;
HRESULT hr;
- hr = QEventDispatcherWinRT::runOnXamlThread([&op]() {
+ hr = QEventDispatcherWinRT::runOnXamlThread([&op, d]() {
HRESULT hr;
- if (!statics) {
+ if (!d->statics) {
hr = RoGetActivationFactory(HString::MakeReference(RuntimeClass_Windows_Devices_Geolocation_Geolocator).Get(),
- IID_PPV_ARGS(&statics));
+ IID_PPV_ARGS(&d->statics));
RETURN_HR_IF_FAILED("Could not access Geolocation Statics.");
}
- hr = statics->RequestAccessAsync(&op);
+ hr = d->statics->RequestAccessAsync(&op);
return hr;
});
if (FAILED(hr)) {