diff --git a/resources/qml/Reactions.qml b/resources/qml/Reactions.qml
index 63115ec00332a32f30cfe711bf44c65d5fe5edaa..cb2bcb2499070fce10bdcbeaa68b6b4271484f77 100644
--- a/resources/qml/Reactions.qml
+++ b/resources/qml/Reactions.qml
@@ -33,12 +33,19 @@ Flow {
             implicitWidth: contentItem.childrenRect.width + contentItem.leftPadding * 2
             implicitHeight: contentItem.childrenRect.height
             ToolTip.visible: hovered
-            ToolTip.text: modelData.users
             ToolTip.delay: Nheko.tooltipDelay
             onClicked: {
                 console.debug("Picked " + modelData.key + "in response to " + reactionFlow.eventId + ". selfReactedEvent: " + modelData.selfReactedEvent);
                 room.input.reaction(reactionFlow.eventId, modelData.key);
             }
+            Component.onCompleted: {
+                ToolTip.text = Qt.binding(function() {
+                    if (textMetrics.elidedText === textMetrics.text) {
+                        return modelData.users;
+                    }
+                    return modelData.displayKey + "\n" + modelData.users;
+                })
+            }
 
             contentItem: Row {
                 anchors.centerIn: parent
@@ -59,7 +66,15 @@ Flow {
                     id: reactionText
 
                     anchors.baseline: reactionCounter.baseline
-                    text: textMetrics.elidedText + (textMetrics.elidedText == modelData.displayKey ? "" : "…")
+                    text: {
+                        // When an emoji font is selected that doesn't have …, it is dropped from elidedText. So we add it back.
+                        if (textMetrics.elidedText !== modelData.displayKey) {
+                            if (!textMetrics.elidedText.endsWith("…")) {
+                                return textMetrics.elidedText + "…";
+                            }
+                        }
+                        return textMetrics.elidedText;
+                    }
                     font.family: Settings.emojiFont
                     color: reaction.hovered ? Nheko.colors.highlight : Nheko.colors.text
                     maximumLineCount: 1