diff --git a/src/remotedesktop.cpp b/src/remotedesktop.cpp --- a/src/remotedesktop.cpp +++ b/src/remotedesktop.cpp @@ -124,6 +124,8 @@ QScopedPointer remoteDesktopDialog(new RemoteDesktopDialog(app_id, session->deviceTypes(), session->screenSharingEnabled(), session->multipleSources())); Utils::setParentWindow(remoteDesktopDialog.data(), parent_window); + connect(session, &Session::closed, remoteDesktopDialog.data(), &RemoteDesktopDialog::reject); + if (remoteDesktopDialog->exec()) { if (session->screenSharingEnabled()) { if (!WaylandIntegration::startStreaming(remoteDesktopDialog->selectedScreens().first())) { diff --git a/src/screencast.cpp b/src/screencast.cpp --- a/src/screencast.cpp +++ b/src/screencast.cpp @@ -147,6 +147,8 @@ QScopedPointer screenDialog(new ScreenChooserDialog(app_id, session->multipleSources())); Utils::setParentWindow(screenDialog.data(), parent_window); + connect(session, &Session::closed, screenDialog.data(), &ScreenChooserDialog::reject); + if (screenDialog->exec()) { if (!WaylandIntegration::startStreaming(screenDialog->selectedScreens().first())) { return 2;