diff --git a/resources/qml/delegates/FileMessage.qml b/resources/qml/delegates/FileMessage.qml
index ffd1e82b..4bc202eb 100644
--- a/resources/qml/delegates/FileMessage.qml
+++ b/resources/qml/delegates/FileMessage.qml
@@ -1,4 +1,4 @@
-import QtQuick 2.6
+import QtQuick 2.12
import QtQuick.Layouts 1.2
import im.nheko 1.0
@@ -31,7 +31,15 @@ Item {
MouseArea {
anchors.fill: parent
- onClicked: TimelineManager.timeline.saveMedia(model.data.id)
+ cursorShape: Qt.PointingHandCursor
+ }
+
+ TapHandler {
+ onSingleTapped: TimelineManager.timeline.saveMedia(model.data.id)
+ }
+
+ CursorShape {
+ anchors.fill: parent
cursorShape: Qt.PointingHandCursor
}
diff --git a/resources/qml/delegates/ImageMessage.qml b/resources/qml/delegates/ImageMessage.qml
index e8e325f0..3bb9eb05 100644
--- a/resources/qml/delegates/ImageMessage.qml
+++ b/resources/qml/delegates/ImageMessage.qml
@@ -1,4 +1,4 @@
-import QtQuick 2.6
+import QtQuick 2.12
import im.nheko 1.0
Item {
@@ -32,20 +32,20 @@ Item {
smooth: true
mipmap: true
- MouseArea {
- id: mouseArea
-
+ TapHandler {
enabled: model.data.type == MtxEvent.ImageMessage && img.status == Image.Ready
- hoverEnabled: true
- anchors.fill: parent
- onClicked: TimelineManager.openImageOverlay(model.data.url, model.data.id)
+ onSingleTapped: TimelineManager.openImageOverlay(model.data.url, model.data.id)
+ }
+
+ HoverHandler {
+ id: mouseArea
}
Item {
id: overlay
anchors.fill: parent
- visible: mouseArea.containsMouse
+ visible: mouseArea.hovered
Rectangle {
id: container
diff --git a/resources/qml/delegates/PlayableMediaMessage.qml b/resources/qml/delegates/PlayableMediaMessage.qml
index 1534da2e..70f39e43 100644
--- a/resources/qml/delegates/PlayableMediaMessage.qml
+++ b/resources/qml/delegates/PlayableMediaMessage.qml
@@ -1,5 +1,5 @@
import QtMultimedia 5.6
-import QtQuick 2.6
+import QtQuick 2.12
import QtQuick.Controls 2.1
import QtQuick.Layouts 1.2
import im.nheko 1.0
@@ -140,9 +140,8 @@ Rectangle {
fillMode: Image.Pad
}
- MouseArea {
- anchors.fill: parent
- onClicked: {
+ TapHandler {
+ onSingleTapped: {
switch (button.state) {
case "":
TimelineManager.timeline.cacheMedia(model.data.id);
@@ -159,6 +158,10 @@ Rectangle {
break;
}
}
+ }
+
+ CursorShape {
+ anchors.fill: parent
cursorShape: Qt.PointingHandCursor
}
diff --git a/resources/qml/delegates/Reply.qml b/resources/qml/delegates/Reply.qml
index ff1fa657..28c4bf6e 100644
--- a/resources/qml/delegates/Reply.qml
+++ b/resources/qml/delegates/Reply.qml
@@ -1,4 +1,4 @@
-import QtQuick 2.6
+import QtQuick 2.12
import QtQuick.Controls 2.3
import QtQuick.Layouts 1.2
import QtQuick.Window 2.2
@@ -13,10 +13,12 @@ Item {
width: parent.width
height: replyContainer.height
- MouseArea {
+ TapHandler {
+ onSingleTapped: chat.positionViewAtIndex(chat.model.idToIndex(modelData.id), ListView.Contain)
+ }
+
+ CursorShape {
anchors.fill: parent
- preventStealing: false
- onClicked: chat.positionViewAtIndex(chat.model.idToIndex(modelData.id), ListView.Contain)
cursorShape: Qt.PointingHandCursor
}
@@ -43,10 +45,8 @@ Item {
color: replyComponent.userColor
textFormat: Text.RichText
- MouseArea {
- anchors.fill: parent
- onClicked: chat.model.openUserProfile(reply.modelData.userId)
- cursorShape: Qt.PointingHandCursor
+ TapHandler {
+ onSingleTapped: chat.model.openUserProfile(reply.modelData.userId)
}
}
diff --git a/resources/qml/delegates/TextMessage.qml b/resources/qml/delegates/TextMessage.qml
index 2c449ca2..82d0d0e4 100644
--- a/resources/qml/delegates/TextMessage.qml
+++ b/resources/qml/delegates/TextMessage.qml
@@ -8,5 +8,6 @@ MatrixText {
width: parent ? parent.width : undefined
height: isReply ? Math.round(Math.min(timelineRoot.height / 8, implicitHeight)) : undefined
clip: isReply
+ selectByMouse: !Settings.mobileMode && !isReply
font.pointSize: (Settings.enlargeEmojiOnlyMessages && model.data.isOnlyEmoji > 0 && model.data.isOnlyEmoji < 4) ? Settings.fontSize * 3 : Settings.fontSize
}
|