diff --git a/resources/qml/ForwardCompleter.qml b/resources/qml/ForwardCompleter.qml
index 6f95c6631ac93af6ef58f25fc50103739dacadd2..caaea440227d4110f7686e7ecea9ac87d2f443ff 100644
--- a/resources/qml/ForwardCompleter.qml
+++ b/resources/qml/ForwardCompleter.qml
@@ -56,7 +56,7 @@ Popup {
 
             eventId: mid
             userColor: TimelineManager.userColor(modelData.userId, palette.window)
-            width: parent.width
+            maxWidth: parent.width
         }
         MatrixTextField {
             id: roomTextInput
diff --git a/resources/qml/ReplyPopup.qml b/resources/qml/ReplyPopup.qml
index 64c58e560a11ab6a38a4b710f19f13257f770970..5657c08a100efdd51f7256d9cdf40d92197d1c53 100644
--- a/resources/qml/ReplyPopup.qml
+++ b/resources/qml/ReplyPopup.qml
@@ -32,7 +32,7 @@ Rectangle {
         eventId: room.reply ?? ""
         userColor: TimelineManager.userColor(modelData.userId, palette.window)
         visible: room && room.reply
-        width: parent.width
+        maxWidth: parent.width - anchors.leftMargin - anchors.rightMargin
     }
     ImageButton {
         id: closeReplyButton
diff --git a/resources/qml/TopBar.qml b/resources/qml/TopBar.qml
index 4c70348b10dab23a770ff32339f2969de356f8e1..aba917636ac40a68cde729e6fd934d211cd0213d 100644
--- a/resources/qml/TopBar.qml
+++ b/resources/qml/TopBar.qml
@@ -285,7 +285,7 @@ Pane {
 
                             property var e: room ? room.getDump(modelData, "pins") : {}
 
-                            Layout.fillWidth: true
+                            maxWidth: pinnedMessages.width
                             //Layout.preferredHeight: height
                             eventId: e.eventId ?? ""
                             userColor: TimelineManager.userColor(e.userId, palette.window)
diff --git a/resources/qml/delegates/Reply.qml b/resources/qml/delegates/Reply.qml
index 55a376f734023901d1e4bf9d8cf352ee6f2c38e1..52cc982dc06c901f8a457c8571bf332e7b12614d 100644
--- a/resources/qml/delegates/Reply.qml
+++ b/resources/qml/delegates/Reply.qml
@@ -24,6 +24,7 @@ AbstractButton {
     property string userName: eventId ? room.dataById(eventId, Room.UserName, "") : ""
     implicitHeight: replyContainer.implicitHeight
     implicitWidth: replyContainer.implicitWidth
+    property int maxWidth
 
     NhekoCursorShape {
         anchors.fill: parent
@@ -48,14 +49,11 @@ AbstractButton {
         eventId: r.eventId
         replyTo: ""
 
-        width: parent.width
-        height: replyContainer.implicitHeight
-
         //height: replyContainer.implicitHeight
         data: GridLayout {
             id: replyContainer
 
-            width: parent.width
+            width: r.maxWidth
             columns: 2
             rows: 2
             columnSpacing: Nheko.paddingMedium