diff --git a/qml/component/GenericBubble.qml b/qml/component/GenericBubble.qml
index 90613ab76..1c2715729 100644
--- a/qml/component/GenericBubble.qml
+++ b/qml/component/GenericBubble.qml
@@ -17,6 +17,7 @@ Control {
onSecondaryClicked: {
messageContextMenu.row = messageRow
messageContextMenu.model = model
+ messageContextMenu.selectedText = contentLabel.selectedText
messageContextMenu.popup()
}
}
diff --git a/qml/component/MessageDelegate.qml b/qml/component/MessageDelegate.qml
index ecb10ccc7..af1d23151 100644
--- a/qml/component/MessageDelegate.qml
+++ b/qml/component/MessageDelegate.qml
@@ -72,6 +72,8 @@ RowLayout {
TextEdit {
Layout.fillWidth: true
+ id: contentLabel
+
text: (highlighted ? "" : "") + display
visible: isText
diff --git a/qml/form/RoomForm.qml b/qml/form/RoomForm.qml
index 6afc2d167..0ace76f17 100644
--- a/qml/form/RoomForm.qml
+++ b/qml/form/RoomForm.qml
@@ -121,6 +121,7 @@ Item {
verticalLayoutDirection: ListView.BottomToTop
spacing: 8
+ cacheBuffer: 200
flickDeceleration: 4096
boundsBehavior: Flickable.DragOverBounds
@@ -130,7 +131,7 @@ Item {
onContentYChanged: {
// Check whether we're about to bump into the ceiling in 2 seconds
var curVelocity = verticalVelocity // Snapshot the current speed
- if(curVelocity < 0 && contentY + curVelocity * 2 < originY)
+ if(curVelocity < 0 && contentY - 5000 < originY)
{
currentRoom.getPreviousContent(50);
}
diff --git a/qml/menu/MessageContextMenu.qml b/qml/menu/MessageContextMenu.qml
index a173c85d1..b9486c47e 100644
--- a/qml/menu/MessageContextMenu.qml
+++ b/qml/menu/MessageContextMenu.qml
@@ -4,6 +4,7 @@ import QtQuick.Controls 2.2
Menu {
property var row: null
property var model: null
+ property string selectedText
readonly property bool isFile: model && (model.eventType === "video" || model.eventType === "audio" || model.eventType === "file" || model.eventType === "image")
@@ -48,7 +49,7 @@ Menu {
onTriggered: {
inputField.clear()
- inputField.insert(0, "> <" + model.author.id + "><" + model.eventId + "> " + model.message + "\n\n")
+ inputField.insert(0, "> <" + model.author.id + "><" + model.eventId + "> " + (selectedText != "" ? selectedText : model.message) + "\n\n")
}
}
MenuItem {
diff --git a/src/messageeventmodel.cpp b/src/messageeventmodel.cpp
index 3b845a946..446c9f445 100644
--- a/src/messageeventmodel.cpp
+++ b/src/messageeventmodel.cpp
@@ -330,7 +330,7 @@ QVariant MessageEventModel::data(const QModelIndex& idx, int role) const {
if (e.hasTextContent() && e.mimeType().name() != "text/plain") {
static const QRegExp userPillRegExp(
- "(.*)");
+ "(.*)");
QString formattedStr(
static_cast(e.content())->body);
formattedStr.replace(userPillRegExp,