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-04-07 03:01:46 +0200
committerQt Forward Merge Bot <qt_forward_merge_bot@qt-project.org>2020-04-07 03:01:46 +0200
commita8793c6d9695498b3a53793f21859421262b4541 (patch)
treea783f6f0a1bd6c8dc5c4c57438da981e6b5dd17f /src/plugins/position/winrt/qgeopositioninfosource_winrt.cpp
parentb06a07cf9fd474e11fbe467047e5fe0322b677f0 (diff)
parenteda2a7c286058176e1906d0ddc88d4e2cfbec55e (diff)
downloadqtlocation-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.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)) {