diff options
-rw-r--r-- | src/plugins/winrt/qwinrtcameralockscontrol.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/plugins/winrt/qwinrtcameralockscontrol.cpp b/src/plugins/winrt/qwinrtcameralockscontrol.cpp index 11e576be0..8528d16fb 100644 --- a/src/plugins/winrt/qwinrtcameralockscontrol.cpp +++ b/src/plugins/winrt/qwinrtcameralockscontrol.cpp @@ -66,13 +66,14 @@ QCamera::LockStatus QWinRTCameraLocksControl::lockStatus(QCamera::LockType lock) void QWinRTCameraLocksControl::searchAndLock(QCamera::LockTypes locks) { - if (locks.testFlag(QCamera::LockFocus)) { + QWinRTCameraControl *cameraControl = qobject_cast<QWinRTCameraControl *>(parent()); + Q_ASSERT(cameraControl); + if (cameraControl->state() != QCamera::ActiveState) + return; + else if (locks.testFlag(QCamera::LockFocus)) QMetaObject::invokeMethod(this, "searchAndLockFocus", Qt::QueuedConnection); - } else { - QWinRTCameraControl *cameraControl = qobject_cast<QWinRTCameraControl *>(parent()); - Q_ASSERT(cameraControl); + else cameraControl->emitError(QCamera::InvalidRequestError, QStringLiteral("Unsupported camera lock type.")); - } } void QWinRTCameraLocksControl::unlock(QCamera::LockTypes locks) |