From bd6a2a899cd3701ccb1f2886adbc01e93f7c8ead Mon Sep 17 00:00:00 2001 From: Ronan Abhamon Date: Wed, 7 Jun 2017 10:02:55 +0200 Subject: [PATCH] fix(ui/views/App/Calls/IncallFullscreenWindow): connect once to visibility changed to call `showFullScreen` --- linphone-desktop/ui/views/App/Calls/Incall.js | 2 +- .../App/Calls/IncallFullscreenWindow.qml | 34 ++++++++++--------- 2 files changed, 19 insertions(+), 17 deletions(-) diff --git a/linphone-desktop/ui/views/App/Calls/Incall.js b/linphone-desktop/ui/views/App/Calls/Incall.js index 2f3f291ed..e8fb4855d 100644 --- a/linphone-desktop/ui/views/App/Calls/Incall.js +++ b/linphone-desktop/ui/views/App/Calls/Incall.js @@ -20,7 +20,7 @@ function handleStatusChanged (status) { if (status === Linphone.CallModel.CallStatusEnded) { var fullscreen = incall._fullscreen if (fullscreen) { - fullscreen.close() + fullscreen.exit() } telKeypad.visible = false diff --git a/linphone-desktop/ui/views/App/Calls/IncallFullscreenWindow.qml b/linphone-desktop/ui/views/App/Calls/IncallFullscreenWindow.qml index b8a1f8803..422c5b907 100644 --- a/linphone-desktop/ui/views/App/Calls/IncallFullscreenWindow.qml +++ b/linphone-desktop/ui/views/App/Calls/IncallFullscreenWindow.qml @@ -20,11 +20,12 @@ Window { property var callsWindow property bool hideButtons: false - property bool sFullScreen: true // --------------------------------------------------------------------------- - function _exit (cb) { + function exit (cb) { + // It's necessary to call `showNormal` before close on MacOs + // because the dock will be hidden forever! incall.showNormal() incall.close() @@ -35,18 +36,22 @@ Window { // --------------------------------------------------------------------------- - onVisibilityChanged: { - if (sFullScreen && visibility === Window.Windowed) { - incall.showFullScreen() - sFullScreen = false + Component.onCompleted: { + var show = function (visibility) { + if (visibility === Window.Windowed) { + incall.visibilityChanged.disconnect(show) + incall.showFullScreen() + } } -} + + incall.visibilityChanged.connect(show) + } // --------------------------------------------------------------------------- Shortcut { sequence: StandardKey.Close - onActivated: _exit() + onActivated: incall.exit() } // --------------------------------------------------------------------------- @@ -56,10 +61,7 @@ Window { color: '#000000' // Not a style. focus: true - Keys.onEscapePressed: { - incall.showNormal() - incall.close() - } + Keys.onEscapePressed: incall.exit() Loader { anchors.fill: parent @@ -218,7 +220,7 @@ Window { ActionButton { icon: 'fullscreen' - onClicked: _exit() + onClicked: incall.exit() } } } @@ -300,7 +302,7 @@ Window { iconSize: CallStyle.actionArea.iconSize updating: call.updating - onClicked: _exit(function () { call.videoEnabled = false }) + onClicked: incall.exit(function () { call.videoEnabled = false }) } ActionButton { @@ -326,13 +328,13 @@ Window { icon: 'pause' updating: call.updating - onClicked: _exit(function () { call.pausedByUser = enabled }) + onClicked: incall.exit(function () { call.pausedByUser = enabled }) } ActionButton { icon: 'hangup' - onClicked: _exit(call.terminate) + onClicked: incall.exit(call.terminate) } } }