diff --git a/src/mainview/components/MessageBar.qml b/src/mainview/components/MessageBar.qml
index 34918123440d0ff9ea04d25fa447ea4d63dad71c..0648d1c3e4af8312f988a65307d6d17f11bb59ea 100644
--- a/src/mainview/components/MessageBar.qml
+++ b/src/mainview/components/MessageBar.qml
@@ -32,6 +32,8 @@ ColumnLayout {
     property alias text: textArea.text
     property var textAreaObj: textArea
     property real marginSize: 10
+    property bool sendButtonVisibility: false
+    property bool animate: false
 
     signal sendMessageButtonClicked
     signal sendFileButtonClicked
@@ -39,15 +41,6 @@ ColumnLayout {
     signal videoRecordMessageButtonClicked
     signal emojiButtonClicked
 
-    function showSendMessageButton() {
-        sendMessageButton.visible = true
-        sendMessageButton.state = "buttonFadeOut"
-    }
-
-    function hideSendMessageButton() {
-        sendMessageButton.state = "buttonFadeIn"
-    }
-
     implicitHeight: messageBarRowLayout.height
 
     spacing: 0
@@ -181,7 +174,7 @@ ColumnLayout {
 
             Layout.alignment: Qt.AlignVCenter
             Layout.rightMargin: visible ? marginSize : 0
-            Layout.preferredWidth: JamiTheme.messageWebViewFooterButtonSize
+            Layout.preferredWidth: scale * JamiTheme.messageWebViewFooterButtonSize
             Layout.preferredHeight: JamiTheme.messageWebViewFooterButtonSize
 
             radius: JamiTheme.messageWebViewFooterButtonRadius
@@ -194,37 +187,18 @@ ColumnLayout {
             normalColor: JamiTheme.primaryBackgroundColor
             imageColor: JamiTheme.messageWebViewFooterButtonImageColor
 
-            opacity: 0
-            visible: false
-            states: [
-                State {
-                    name: "buttonFadeIn"
-                    PropertyChanges {
-                        target: sendMessageButton
-                        opacity: 0
-                    }
-                },
-                State {
-                    name: "buttonFadeOut"
-                    PropertyChanges {
-                        target: sendMessageButton
-                        opacity: 1
-                    }
-                }
-            ]
-            transitions: Transition {
+            opacity: sendButtonVisibility ? 1 : 0
+            visible: opacity
+            scale: opacity
+
+            Behavior on opacity {
+                enabled: animate
                 NumberAnimation {
-                    properties: "opacity"
+                    duration: JamiTheme.shortFadeDuration
                     easing.type: Easing.InOutQuad
-                    duration: 300
                 }
             }
 
-            onOpacityChanged: {
-                if (opacity === 0)
-                    visible = false
-            }
-
             onClicked: root.sendMessageButtonClicked()
         }
 
diff --git a/src/mainview/components/MessageWebViewFooter.qml b/src/mainview/components/MessageWebViewFooter.qml
index f945de94a22e44c6d9bbb3a3f42e637f3884a147..f83f629e1f0d06a946f8ecf86021e58256a1d912 100644
--- a/src/mainview/components/MessageWebViewFooter.qml
+++ b/src/mainview/components/MessageWebViewFooter.qml
@@ -53,6 +53,9 @@ Rectangle {
                                             messageBar.text);
             }
 
+            // turn off the button animations when switching convs
+            messageBar.animate = false
+
             messageBar.textAreaObj.clearText()
             previousConvId = LRCInstance.selectedConvUid
 
@@ -60,6 +63,8 @@ Rectangle {
                                                               LRCInstance.currentAccountId);
             if (restoredContent)
                 messageBar.textAreaObj.insertText(restoredContent)
+
+            messageBar.animate = true
         }
     }
 
@@ -122,12 +127,8 @@ Rectangle {
             Layout.preferredWidth: footerColumnLayout.width
             Layout.preferredHeight: implicitHeight
 
-            onTextChanged: {
-                if (text)
-                    showSendMessageButton()
-                else if (!dataTransferSendContainer.filesToSendCount)
-                    hideSendMessageButton()
-            }
+            sendButtonVisibility: text ||
+                                  dataTransferSendContainer.filesToSendCount
 
             onEmojiButtonClicked: {
                 JamiQmlUtils.updateMessageBarButtonsPoints()