diff --git a/linphone-desktop/ui/views/App/Calls/CallsWindow.js b/linphone-desktop/ui/views/App/Calls/CallsWindow.js index f0c37d978..bdf2d5368 100644 --- a/linphone-desktop/ui/views/App/Calls/CallsWindow.js +++ b/linphone-desktop/ui/views/App/Calls/CallsWindow.js @@ -81,15 +81,11 @@ function handleCallTransferAsked (call) { }) } -function handleDetachedVirtualWindow () { - handleCountChanged(calls.count) -} - function windowMustBeClosed () { - return calls.count === 0 && !window.virtualWindowVisible + return Linphone.CallsListModel.rowCount() === 0 && !window.virtualWindowVisible } -function handleCountChanged () { +function tryToCloseWindow () { if (windowMustBeClosed()) { // Workaround, it's necessary to use a timeout because at last call termination // a segfault is emit in `QOpenGLContext::functions() const ()`. diff --git a/linphone-desktop/ui/views/App/Calls/CallsWindow.qml b/linphone-desktop/ui/views/App/Calls/CallsWindow.qml index c511a3998..9ced3eb7d 100644 --- a/linphone-desktop/ui/views/App/Calls/CallsWindow.qml +++ b/linphone-desktop/ui/views/App/Calls/CallsWindow.qml @@ -55,7 +55,7 @@ Window { // --------------------------------------------------------------------------- onClosing: Logic.handleClosing(close) - onDetachedVirtualWindow: Logic.handleDetachedVirtualWindow() + onDetachedVirtualWindow: Logic.tryToCloseWindow() // --------------------------------------------------------------------------- @@ -124,8 +124,6 @@ Window { conferenceModel: ConferenceModel {} model: CallsListProxyModel {} - - onCountChanged: Logic.handleCountChanged(count) } } } @@ -212,10 +210,12 @@ Window { // --------------------------------------------------------------------------- // Handle transfer. + // Handle count changed. Not on proxy model!!! // --------------------------------------------------------------------------- Connections { target: CallsListModel onCallTransferAsked: Logic.handleCallTransferAsked(callModel) + onRowsRemoved: Logic.tryToCloseWindow() } }