Skip to content

Commit

Permalink
qml: android back-gesture conflict hack not working on qt6, replace w…
Browse files Browse the repository at this point in the history
…ith simple properties
  • Loading branch information
accumulator committed Oct 3, 2023
1 parent 27ca008 commit dd41225
Showing 1 changed file with 13 additions and 26 deletions.
39 changes: 13 additions & 26 deletions electrum/gui/qml/components/controls/ElListView.qml
Original file line number Diff line number Diff line change
@@ -1,40 +1,27 @@
import QtQuick 2.6
import QtQuick.Layouts 1.0
import QtQuick.Controls 2.0
import QtQuick.Controls.Material 2.0
import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
import QtQuick.Controls.Material

ListView {
id: root

property int width_left_exclusion_zone: 0
property int width_right_exclusion_zone: 0
// avoid interference with android back-gesture by defining deadzones
// you can override to 0 if listview is away from left or right edge.
property int exclusionZone: constants.fingerWidth / 2
property int leftExclusionZone: exclusionZone
property int rightExclusionZone: exclusionZone

MouseArea {
anchors {top: root.top; left: root.left; bottom: root.bottom }
visible: width_left_exclusion_zone > 0
width: width_left_exclusion_zone
visible: leftExclusionZone > 0
width: leftExclusionZone
}

MouseArea {
anchors { top: root.top; right: root.right; bottom: root.bottom }
visible: width_right_exclusion_zone > 0
width: width_right_exclusion_zone
visible: rightExclusionZone > 0
width: rightExclusionZone
}

// determine distance from sides of window and reserve some
// space using noop mouseareas in order to not emit clicks when
// android back gesture is used
function layoutExclusionZones() {
var reserve = constants.fingerWidth / 2
var p = root.mapToGlobal(0, 0) // note: coords on whole *screen*, not just window
width_left_exclusion_zone = Math.max(0, reserve - p.x)
p = root.mapToGlobal(width, 0)
width_right_exclusion_zone = Math.max(0, reserve - (app.width - p.x))
}

Component.onCompleted: {
if (AppController.isAndroid()) {
layoutExclusionZones()
}
}
}

0 comments on commit dd41225

Please sign in to comment.