Fix some TapHandler focus issues
This commit is contained in:
parent
9d97f9f705
commit
18e96d5c7d
@ -61,6 +61,7 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
|
|
||||||
layer.effect: OpacityMask {
|
layer.effect: OpacityMask {
|
||||||
|
cached: true
|
||||||
|
|
||||||
maskSource: Rectangle {
|
maskSource: Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
@ -15,7 +15,6 @@ ScrollView {
|
|||||||
clip: false
|
clip: false
|
||||||
palette: colors
|
palette: colors
|
||||||
padding: 8
|
padding: 8
|
||||||
|
|
||||||
ScrollBar.horizontal.visible: false
|
ScrollBar.horizontal.visible: false
|
||||||
|
|
||||||
ListView {
|
ListView {
|
||||||
|
@ -22,7 +22,7 @@ Popup {
|
|||||||
palette: colors
|
palette: colors
|
||||||
onOpened: {
|
onOpened: {
|
||||||
completerPopup.open();
|
completerPopup.open();
|
||||||
roomTextInput.forceActiveFocus();
|
roomTextInput.forceActiveFocus();
|
||||||
}
|
}
|
||||||
onClosed: {
|
onClosed: {
|
||||||
completerPopup.close();
|
completerPopup.close();
|
||||||
|
@ -29,11 +29,13 @@ Item {
|
|||||||
TapHandler {
|
TapHandler {
|
||||||
acceptedButtons: Qt.RightButton
|
acceptedButtons: Qt.RightButton
|
||||||
onSingleTapped: messageContextMenu.show(model.id, model.type, model.isEncrypted, model.isEditable)
|
onSingleTapped: messageContextMenu.show(model.id, model.type, model.isEncrypted, model.isEditable)
|
||||||
|
gesturePolicy: TapHandler.ReleaseWithinBounds
|
||||||
}
|
}
|
||||||
|
|
||||||
TapHandler {
|
TapHandler {
|
||||||
onLongPressed: messageContextMenu.show(model.id, model.type, model.isEncrypted, model.isEditable)
|
onLongPressed: messageContextMenu.show(model.id, model.type, model.isEncrypted, model.isEditable)
|
||||||
onDoubleTapped: chat.model.reply = model.id
|
onDoubleTapped: chat.model.reply = model.id
|
||||||
|
gesturePolicy: TapHandler.ReleaseWithinBounds
|
||||||
}
|
}
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
|
@ -94,21 +94,22 @@ Page {
|
|||||||
property string eventId
|
property string eventId
|
||||||
property int eventType
|
property int eventType
|
||||||
property bool isEncrypted
|
property bool isEncrypted
|
||||||
property bool isEditable
|
property bool isEditable
|
||||||
|
|
||||||
function show(eventId_, eventType_, isEncrypted_, isEditable_, showAt_) {
|
function show(eventId_, eventType_, isEncrypted_, isEditable_, showAt_) {
|
||||||
eventId = eventId_;
|
eventId = eventId_;
|
||||||
eventType = eventType_;
|
eventType = eventType_;
|
||||||
isEncrypted = isEncrypted_;
|
isEncrypted = isEncrypted_;
|
||||||
isEditable = isEditable_;
|
isEditable = isEditable_;
|
||||||
if (showAt_)
|
if (showAt_)
|
||||||
open(showAt_);
|
open(showAt_);
|
||||||
else
|
else
|
||||||
open();
|
open();
|
||||||
}
|
}
|
||||||
|
|
||||||
Platform.MenuItem {
|
Platform.MenuItem {
|
||||||
id: reactionOption
|
id: reactionOption
|
||||||
|
|
||||||
text: qsTr("React")
|
text: qsTr("React")
|
||||||
onTriggered: emojiPopup.show(null, function(emoji) {
|
onTriggered: emojiPopup.show(null, function(emoji) {
|
||||||
TimelineManager.queueReactionMessage(messageContextMenu.eventId, emoji);
|
TimelineManager.queueReactionMessage(messageContextMenu.eventId, emoji);
|
||||||
|
@ -19,7 +19,11 @@ Rectangle {
|
|||||||
color: colors.window
|
color: colors.window
|
||||||
|
|
||||||
TapHandler {
|
TapHandler {
|
||||||
onSingleTapped: TimelineManager.timeline.openRoomSettings()
|
onSingleTapped: {
|
||||||
|
TimelineManager.timeline.openRoomSettings();
|
||||||
|
eventPoint.accepted = true;
|
||||||
|
}
|
||||||
|
gesturePolicy: TapHandler.ReleaseWithinBounds
|
||||||
}
|
}
|
||||||
|
|
||||||
GridLayout {
|
GridLayout {
|
||||||
@ -57,7 +61,7 @@ Rectangle {
|
|||||||
height: avatarSize
|
height: avatarSize
|
||||||
url: room ? room.roomAvatarUrl.replace("mxc://", "image://MxcImage/") : ""
|
url: room ? room.roomAvatarUrl.replace("mxc://", "image://MxcImage/") : ""
|
||||||
displayName: room ? room.roomName : qsTr("No room selected")
|
displayName: room ? room.roomName : qsTr("No room selected")
|
||||||
onClicked: TimelineManager.openRoomSettings()
|
onClicked: TimelineManager.timeline.openRoomSettings()
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
@ -69,7 +73,6 @@ Rectangle {
|
|||||||
text: room ? room.roomName : qsTr("No room selected")
|
text: room ? room.roomName : qsTr("No room selected")
|
||||||
maximumLineCount: 1
|
maximumLineCount: 1
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MatrixText {
|
MatrixText {
|
||||||
|
@ -35,6 +35,7 @@ Item {
|
|||||||
|
|
||||||
TapHandler {
|
TapHandler {
|
||||||
onSingleTapped: TimelineManager.timeline.saveMedia(model.data.id)
|
onSingleTapped: TimelineManager.timeline.saveMedia(model.data.id)
|
||||||
|
gesturePolicy: TapHandler.ReleaseWithinBounds
|
||||||
}
|
}
|
||||||
|
|
||||||
CursorShape {
|
CursorShape {
|
||||||
|
@ -38,7 +38,11 @@ Item {
|
|||||||
|
|
||||||
TapHandler {
|
TapHandler {
|
||||||
enabled: model.data.type == MtxEvent.ImageMessage && img.status == Image.Ready
|
enabled: model.data.type == MtxEvent.ImageMessage && img.status == Image.Ready
|
||||||
onSingleTapped: TimelineManager.openImageOverlay(model.data.url, model.data.id)
|
onSingleTapped: {
|
||||||
|
TimelineManager.openImageOverlay(model.data.url, model.data.id);
|
||||||
|
eventPoint.accepted = true;
|
||||||
|
}
|
||||||
|
gesturePolicy: TapHandler.ReleaseWithinBounds
|
||||||
}
|
}
|
||||||
|
|
||||||
HoverHandler {
|
HoverHandler {
|
||||||
|
@ -19,6 +19,7 @@ Item {
|
|||||||
|
|
||||||
TapHandler {
|
TapHandler {
|
||||||
onSingleTapped: chat.positionViewAtIndex(chat.model.idToIndex(modelData.id), ListView.Contain)
|
onSingleTapped: chat.positionViewAtIndex(chat.model.idToIndex(modelData.id), ListView.Contain)
|
||||||
|
gesturePolicy: TapHandler.ReleaseWithinBounds
|
||||||
}
|
}
|
||||||
|
|
||||||
CursorShape {
|
CursorShape {
|
||||||
@ -51,6 +52,7 @@ Item {
|
|||||||
|
|
||||||
TapHandler {
|
TapHandler {
|
||||||
onSingleTapped: chat.model.openUserProfile(reply.modelData.userId)
|
onSingleTapped: chat.model.openUserProfile(reply.modelData.userId)
|
||||||
|
gesturePolicy: TapHandler.ReleaseWithinBounds
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -35,7 +35,6 @@ Menu {
|
|||||||
modal: true
|
modal: true
|
||||||
focus: true
|
focus: true
|
||||||
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutside
|
||||||
|
|
||||||
height: columnView.implicitHeight + 4
|
height: columnView.implicitHeight + 4
|
||||||
|
|
||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
@ -44,17 +43,17 @@ Menu {
|
|||||||
spacing: 0
|
spacing: 0
|
||||||
anchors.leftMargin: 3
|
anchors.leftMargin: 3
|
||||||
anchors.rightMargin: 3
|
anchors.rightMargin: 3
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
anchors.topMargin: 2
|
anchors.topMargin: 2
|
||||||
|
|
||||||
// emoji grid
|
// emoji grid
|
||||||
GridView {
|
GridView {
|
||||||
id: gridView
|
id: gridView
|
||||||
|
|
||||||
Layout.preferredHeight: cellHeight * 5
|
Layout.preferredHeight: cellHeight * 5
|
||||||
Layout.preferredWidth: 7 * 52 + 20
|
Layout.preferredWidth: 7 * 52 + 20
|
||||||
Layout.leftMargin: 4
|
Layout.leftMargin: 4
|
||||||
cellWidth: 52
|
cellWidth: 52
|
||||||
cellHeight: 52
|
cellHeight: 52
|
||||||
|
Loading…
Reference in New Issue
Block a user