diff --git a/resources/qml/MessageInput.qml b/resources/qml/MessageInput.qml
index 6894845267a535c76ba089de196fea1741fca7a5..f8ab494b4d88c6ce84b4a28cc6b27acc3111497a 100644
--- a/resources/qml/MessageInput.qml
+++ b/resources/qml/MessageInput.qml
@@ -29,6 +29,14 @@ Rectangle {
 
     }
 
+    Component {
+        id: screenShareDialog
+
+        ScreenShare {
+        }
+
+    }
+
     RowLayout {
         id: row
 
diff --git a/resources/qml/Root.qml b/resources/qml/Root.qml
index c8c05a3eee825d0d7a3a582236e6769a4049d3e4..98212c83975b9ef57dc8a42c0303d1324ab06d56 100644
--- a/resources/qml/Root.qml
+++ b/resources/qml/Root.qml
@@ -222,12 +222,12 @@ Pane {
     }
 
     function destroyOnClose(obj) {
-        if (obj.closing != undefined) obj.closing.connect(() => obj.destroy());
-        else if (obj.closed != undefined) obj.closed.connect(() => obj.destroy());
+        if (obj.closing != undefined) obj.closing.connect(() => obj.destroy(1000));
+        else if (obj.aboutToHide != undefined) obj.aboutToHide.connect(() => obj.destroy(1000));
     }
 
     function destroyOnClosed(obj) {
-        obj.closed.connect(() => obj.destroy());
+        obj.aboutToHide.connect(() => obj.destroy(1000));
     }
 
     Connections {
diff --git a/resources/qml/voip/PlaceCall.qml b/resources/qml/voip/PlaceCall.qml
index 2639f5bbce20f6342242a51db4b97f205b17ff80..79fd2fc9c7ed624a0c1488f3e5c74ab96f589079 100644
--- a/resources/qml/voip/PlaceCall.qml
+++ b/resources/qml/voip/PlaceCall.qml
@@ -28,14 +28,6 @@ Popup {
 
     }
 
-    Component {
-        id: screenShareDialog
-
-        ScreenShare {
-        }
-
-    }
-
     ColumnLayout {
         id: columnLayout
 
@@ -81,7 +73,7 @@ Popup {
                 height: Nheko.avatarSize
                 url: room.roomAvatarUrl.replace("mxc://", "image://MxcImage/")
                 displayName: room.roomName
-                roomid: room.roomid
+                roomid: room.roomId
                 onClicked: TimelineManager.openImageOverlay(room, room.avatarUrl(userid), room.data.eventId)
             }
 
@@ -118,8 +110,8 @@ Popup {
                 onClicked: {
                     var dialog = screenShareDialog.createObject(timelineRoot);
                     dialog.open();
-                    close();
                     timelineRoot.destroyOnClose(dialog);
+                    close();
                 }
             }
 
diff --git a/resources/qml/voip/ScreenShare.qml b/resources/qml/voip/ScreenShare.qml
index 0b439a48733d6da9d053b9d8f7cb8f3ffd6a9064..cf58f3fa3f737182a13b89d989278985881c4a76 100644
--- a/resources/qml/voip/ScreenShare.qml
+++ b/resources/qml/voip/ScreenShare.qml
@@ -11,12 +11,10 @@ import im.nheko 1.0
 
 Popup {
     modal: true
-    // only set the anchors on Qt 5.12 or higher
-    // see https://doc.qt.io/qt-5/qml-qtquick-controls2-popup.html#anchors.centerIn-prop
-    Component.onCompleted: {
-        if (anchors)
-            anchors.centerIn = parent;
 
+    anchors.centerIn: parent;
+
+    Component.onCompleted: {
         frameRateCombo.currentIndex = frameRateCombo.find(Settings.screenShareFrameRate);
     }
     palette: Nheko.colors