diff options
author | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2020-04-07 03:01:46 +0200 |
---|---|---|
committer | Qt Forward Merge Bot <qt_forward_merge_bot@qt-project.org> | 2020-04-07 03:01:46 +0200 |
commit | a8793c6d9695498b3a53793f21859421262b4541 (patch) | |
tree | a783f6f0a1bd6c8dc5c4c57438da981e6b5dd17f /src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp | |
parent | b06a07cf9fd474e11fbe467047e5fe0322b677f0 (diff) | |
parent | eda2a7c286058176e1906d0ddc88d4e2cfbec55e (diff) | |
download | qtlocation-a8793c6d9695498b3a53793f21859421262b4541.tar.gz |
Merge remote-tracking branch 'origin/5.15' into dev
Change-Id: If3ebc0821be0d0206522adf8ff10040e80e34414
Diffstat (limited to 'src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp')
-rw-r--r-- | src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp | 11 |
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)) { |