diff --git a/resources/qml/Reactions.qml b/resources/qml/Reactions.qml index 63115ec0..cb2bcb24 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