summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/winrt/qwinrtcameralockscontrol.cpp11
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)