Fix some TapHandler focus issues

pull/548/head
Nicolas Werner 4 years ago
parent 9d97f9f705
commit 18e96d5c7d
No known key found for this signature in database
GPG Key ID: C8D75E610773F2D9
  1. 1
      resources/qml/Avatar.qml
  2. 1
      resources/qml/MessageView.qml
  3. 2
      resources/qml/QuickSwitcher.qml
  4. 2
      resources/qml/TimelineRow.qml
  5. 9
      resources/qml/TimelineView.qml
  6. 9
      resources/qml/TopBar.qml
  7. 1
      resources/qml/delegates/FileMessage.qml
  8. 6
      resources/qml/delegates/ImageMessage.qml
  9. 2
      resources/qml/delegates/Reply.qml
  10. 13
      resources/qml/emoji/EmojiPicker.qml

@ -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…
Cancel
Save