diff --git a/src/app/commoncomponents/BaseModalDialog.qml b/src/app/commoncomponents/BaseModalDialog.qml
index 181ac7e4e06835d249a5c113ca935e5b54718442..0fdc3ff71ca9066a321eadd795719fa96267a34b 100644
--- a/src/app/commoncomponents/BaseModalDialog.qml
+++ b/src/app/commoncomponents/BaseModalDialog.qml
@@ -67,7 +67,7 @@ Popup {
 
                 Layout.preferredHeight: text.length === 0 ? 0 : contentHeight
 
-                font.pointSize: 12
+                font.pointSize: JamiTheme.menuFontSize
                 color: JamiTheme.textColor
             }
 
diff --git a/src/app/mainview/components/ContactPicker.qml b/src/app/mainview/components/ContactPicker.qml
index cddfd72ad71ad432a8d3ec7c185f3d3a87d634cf..ca0f8d812a84f55b2f2cdbaa4bb57ac353b37a66 100644
--- a/src/app/mainview/components/ContactPicker.qml
+++ b/src/app/mainview/components/ContactPicker.qml
@@ -23,113 +23,66 @@ import net.jami.Models 1.1
 import net.jami.Constants 1.1
 import "../../commoncomponents"
 
-Popup {
+BaseModalDialog {
     id: contactPickerPopup
 
     property int type: ContactList.CONFERENCE
 
-    contentWidth: 250
-    contentHeight: contactPickerPopupRectColumnLayout.height + 50
+    width: Math.min(appWindow.width - 2 * JamiTheme.preferredMarginSize, JamiTheme.preferredDialogWidth)
+    height: Math.min(appWindow.height - 2 * JamiTheme.preferredMarginSize, JamiTheme.preferredDialogHeight)
 
     padding: 0
 
-    modal: true
-
-    contentItem: Rectangle {
-        id: contactPickerPopupRect
-        width: 250
-
-        PushButton {
-            id: closeButton
-
-            anchors.top: contactPickerPopupRect.top
-            anchors.topMargin: 5
-            anchors.right: contactPickerPopupRect.right
-            anchors.rightMargin: 5
-            imageColor: JamiTheme.textColor
-
-            source: JamiResources.round_close_24dp_svg
-
-            onClicked: {
-                contactPickerPopup.close();
-            }
+    title: {
+        switch (type) {
+        case ContactList.CONFERENCE:
+            return JamiStrings.addToConference;
+        case ContactList.ADDCONVMEMBER:
+            return JamiStrings.addToConversation;
+        case ContactList.TRANSFER:
+            return JamiStrings.transferThisCall;
+        default:
+            return JamiStrings.addDefaultModerator;
         }
+    }
 
-        ColumnLayout {
-            id: contactPickerPopupRectColumnLayout
-
-            anchors.top: contactPickerPopupRect.top
-            anchors.topMargin: 15
-
-            Text {
-                id: contactPickerTitle
-
-                Layout.alignment: Qt.AlignCenter
-                Layout.preferredWidth: contactPickerPopupRect.width
-                Layout.preferredHeight: 30
-
-                font.pointSize: JamiTheme.textFontSize
-                font.bold: true
-                color: JamiTheme.textColor
-
-                horizontalAlignment: Text.AlignHCenter
-                verticalAlignment: Text.AlignVCenter
-
-                text: {
-                    switch (type) {
-                    case ContactList.CONFERENCE:
-                        return JamiStrings.addToConference;
-                    case ContactList.ADDCONVMEMBER:
-                        return JamiStrings.addToConversation;
-                    case ContactList.TRANSFER:
-                        return JamiStrings.transferThisCall;
-                    default:
-                        return JamiStrings.addDefaultModerator;
-                    }
-                }
-            }
+    popupContent: ColumnLayout {
+        id: contactPickerPopupRectColumnLayout
 
-            Searchbar {
-                id: contactPickerContactSearchBar
+        Searchbar {
+            id: contactPickerContactSearchBar
 
-                Layout.alignment: Qt.AlignCenter
-                Layout.margins: 5
-                Layout.fillWidth: true
-                Layout.preferredHeight: 35
+            Layout.alignment: Qt.AlignCenter
+            Layout.margins: 5
+            Layout.fillWidth: true
+            Layout.preferredHeight: 35
 
-                placeHolderText: type === ContactList.TRANSFER ? JamiStrings.transferTo : JamiStrings.addParticipant
+            placeHolderText: type === ContactList.TRANSFER ? JamiStrings.transferTo : JamiStrings.addParticipant
 
-                onSearchBarTextChanged: function(text){
-                    ContactAdapter.setSearchFilter(text);
-                }
+            onSearchBarTextChanged: function(text){
+                ContactAdapter.setSearchFilter(text);
             }
+        }
 
-            JamiListView {
-                id: contactPickerListView
+        JamiListView {
+            id: contactPickerListView
 
-                Layout.alignment: Qt.AlignCenter
-                Layout.preferredWidth: contactPickerPopupRect.width
-                Layout.preferredHeight: 200
+            Layout.alignment: Qt.AlignCenter
+            Layout.fillWidth: true
+            Layout.preferredHeight: 180
+            Layout.bottomMargin: JamiTheme.preferredMarginSize
 
-                model: ContactAdapter.getContactSelectableModel(type)
+            model: ContactAdapter.getContactSelectableModel(type)
 
-                delegate: ContactPickerItemDelegate {
-                    id: contactPickerItemDelegate
+            delegate: ContactPickerItemDelegate {
+                id: contactPickerItemDelegate
 
-                    showPresenceIndicator: type !== ContactList.TRANSFER
-                }
+                showPresenceIndicator: type !== ContactList.TRANSFER
             }
         }
-
-        radius: 10
-        color: JamiTheme.backgroundColor
     }
 
     onAboutToShow: {
         contactPickerListView.model = ContactAdapter.getContactSelectableModel(type);
     }
-
-    background: Rectangle {
-        color: "transparent"
-    }
 }
diff --git a/src/app/mainview/js/contactpickercreation.js b/src/app/mainview/js/contactpickercreation.js
index a87cf687721a264c8d1a9a52e9557928589d380c..cd5c94449868239f19ba6f587955cb84e7db0179 100644
--- a/src/app/mainview/js/contactpickercreation.js
+++ b/src/app/mainview/js/contactpickercreation.js
@@ -20,7 +20,7 @@ function presentContactPickerPopup(type, parent) {
     var comp = Qt.createComponent(
                 "../components/ContactPicker.qml")
     if (comp.status === Component.Ready) {
-        var obj = comp.createObject(parent, { type: type })
+        var obj = comp.createObject(parent, { type: type, parent: parent })
         if (obj === null) {
             console.log("Error creating object for contact picker")
         } else {
diff --git a/src/app/settingsview/components/LinkDeviceDialog.qml b/src/app/settingsview/components/LinkDeviceDialog.qml
index 58d2b33e432276db24923434fa98f4cd91319ead..21b7c43bae0f6ed8a934f91996b97f580f738805 100644
--- a/src/app/settingsview/components/LinkDeviceDialog.qml
+++ b/src/app/settingsview/components/LinkDeviceDialog.qml
@@ -127,16 +127,21 @@ BaseModalDialog {
                 PasswordTextEdit {
                     id: passwordEdit
 
-                    Layout.alignment: Qt.AlignCenter
-                    Layout.preferredWidth: JamiTheme.preferredFieldWidth
-                    Layout.preferredHeight: 48
+                    firstEntry: true
+                    placeholderText: JamiStrings.password
+
+                    Layout.topMargin: 10
+                    Layout.leftMargin: JamiTheme.cornerIconSize
+                    Layout.rightMargin: JamiTheme.cornerIconSize
+                    Layout.alignment: Qt.AlignLeft
+                    Layout.fillWidth: true
 
-                    placeholderText: JamiStrings.enterCurrentPassword
+                    KeyNavigation.up: btnConfirm
+                    KeyNavigation.down: KeyNavigation.up
 
                     onDynamicTextChanged: {
                         btnConfirm.enabled = dynamicText.length > 0;
                     }
-
                     onAccepted: btnConfirm.clicked()
                 }
 
diff --git a/src/app/settingsview/components/LinkedDevicesPage.qml b/src/app/settingsview/components/LinkedDevicesPage.qml
index 489ea2800251ea45bce5b908f4383e786c98b98e..a9c187a8c23e9e6f64dbbf3a9b9eba534e575c76 100644
--- a/src/app/settingsview/components/LinkedDevicesPage.qml
+++ b/src/app/settingsview/components/LinkedDevicesPage.qml
@@ -68,6 +68,7 @@ SettingsPageBase {
                 Layout.preferredWidth: parent.width
                 Layout.alignment: Qt.AlignHCenter
                 title: JamiStrings.linkedThisDevice
+                clip: true
             }
 
             LinkedDevicesBase {
@@ -78,6 +79,7 @@ SettingsPageBase {
                 Layout.alignment: Qt.AlignHCenter
                 inverted: true
                 isCurrent: false
+                clip: true
                 title: JamiStrings.linkedOtherDevices
             }
         }
@@ -92,7 +94,6 @@ SettingsPageBase {
             text: JamiStrings.linkedAccountDescription
             color: JamiTheme.textColor
             horizontalAlignment: Text.AlignLeft
-            verticalAlignment: Text.AlignVCenter
             wrapMode: Text.WordWrap
 
             font.pixelSize: JamiTheme.settingsDescriptionPixelSize