From 8eb3127dce2fe82114ed9cb65f6a074a967de65b Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Wed, 21 Jun 2017 13:26:56 +0200 Subject: [PATCH] fix(Incall): avoid dead lock in fullscreen mode when a call is ended --- ui/views/App/Calls/Incall.js | 8 ++++---- ui/views/App/Calls/IncallFullscreenWindow.qml | 18 +++++++++++++----- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/ui/views/App/Calls/Incall.js b/ui/views/App/Calls/Incall.js index 519ab774a..c5b68d240 100644 --- a/ui/views/App/Calls/Incall.js +++ b/ui/views/App/Calls/Incall.js @@ -42,7 +42,8 @@ function handleStatusChanged (status) { if (status === Linphone.CallModel.CallStatusEnded) { var fullscreen = incall._fullscreen if (fullscreen) { - fullscreen.exit() + // Timeout => Avoid dead lock on mac. + Utils.setTimeout(window, 0, fullscreen.exit) } telKeypad.visible = false @@ -104,10 +105,9 @@ function showFullscreen () { return } - incall._fullscreen = Utils.openWindow(Qt.resolvedUrl('IncallFullscreenWindow.qml'), incall, { + incall._fullscreen = Utils.openWindow(Qt.resolvedUrl('IncallFullscreenWindow.qml'), window, { properties: { - call: incall.call, - callsWindow: incall + caller: incall } }) } diff --git a/ui/views/App/Calls/IncallFullscreenWindow.qml b/ui/views/App/Calls/IncallFullscreenWindow.qml index 6e20f0b3c..73008475f 100644 --- a/ui/views/App/Calls/IncallFullscreenWindow.qml +++ b/ui/views/App/Calls/IncallFullscreenWindow.qml @@ -17,8 +17,7 @@ Window { // --------------------------------------------------------------------------- property var call - property var callsWindow - + property var caller property bool hideButtons: false // --------------------------------------------------------------------------- @@ -38,10 +37,10 @@ Window { // --------------------------------------------------------------------------- Component.onCompleted: { + incall.call = caller.call var show = function (visibility) { if (visibility === Window.Windowed) { incall.visibilityChanged.disconnect(show) - incall.visible = true incall.showFullScreen() } } @@ -69,7 +68,12 @@ Window { Loader { anchors.fill: parent - active: !incall.callsWindow.cameraActivated + + active: { + var caller = incall.caller + return caller && !caller.cameraActivated + } + sourceComponent: camera Component { @@ -350,7 +354,11 @@ Window { // --------------------------------------------------------------------------- Loader { - active: !incall.callsWindow.cameraActivated + active: { + var caller = incall.caller + return caller && !caller.cameraActivated + } + sourceComponent: cameraPreview Component {