mirror of
https://github.com/moonlight-stream/moonlight-qt.git
synced 2025-07-03 00:06:09 +00:00
Fix gamepad menu focus and dismissal issues
This commit is contained in:
parent
48e78d2cd3
commit
8de42b3199
@ -162,15 +162,24 @@ GridView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Keys.onMenuPressed: {
|
||||||
|
if (model.running) {
|
||||||
|
// This will primarily be keyboard/gamepad driven so use
|
||||||
|
// open() instead of popup()
|
||||||
|
appContextMenu.open()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function doQuitGame() {
|
function doQuitGame() {
|
||||||
quitAppDialog.appName = appModel.getRunningAppName()
|
quitAppDialog.appName = appModel.getRunningAppName()
|
||||||
quitAppDialog.segueToStream = false
|
quitAppDialog.segueToStream = false
|
||||||
quitAppDialog.open()
|
quitAppDialog.open()
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu {
|
NavigableMenu {
|
||||||
id: appContextMenu
|
id: appContextMenu
|
||||||
NavigableMenuItem {
|
NavigableMenuItem {
|
||||||
|
parentMenu: appContextMenu
|
||||||
text: model.running ? "Resume Game" : "Launch Game"
|
text: model.running ? "Resume Game" : "Launch Game"
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
appContextMenu.close()
|
appContextMenu.close()
|
||||||
@ -178,6 +187,7 @@ GridView {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
NavigableMenuItem {
|
NavigableMenuItem {
|
||||||
|
parentMenu: appContextMenu
|
||||||
text: "Quit Game"
|
text: "Quit Game"
|
||||||
onTriggered: doQuitGame()
|
onTriggered: doQuitGame()
|
||||||
visible: model.running
|
visible: model.running
|
||||||
|
8
app/gui/NavigableMenu.qml
Normal file
8
app/gui/NavigableMenu.qml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
import QtQuick 2.0
|
||||||
|
import QtQuick.Controls 2.2
|
||||||
|
|
||||||
|
Menu {
|
||||||
|
onOpened: {
|
||||||
|
itemAt(0).forceActiveFocus(Qt.TabFocusReason)
|
||||||
|
}
|
||||||
|
}
|
@ -2,6 +2,10 @@ import QtQuick 2.0
|
|||||||
import QtQuick.Controls 2.2
|
import QtQuick.Controls 2.2
|
||||||
|
|
||||||
MenuItem {
|
MenuItem {
|
||||||
|
// Qt 5.10 has a menu property, but we need to support 5.9
|
||||||
|
// so we must make our own.
|
||||||
|
property Menu parentMenu
|
||||||
|
|
||||||
// Ensure focus can't be given to an invisible item
|
// Ensure focus can't be given to an invisible item
|
||||||
enabled: visible
|
enabled: visible
|
||||||
height: visible ? implicitHeight : 0
|
height: visible ? implicitHeight : 0
|
||||||
@ -10,4 +14,8 @@ MenuItem {
|
|||||||
Keys.onReturnPressed: {
|
Keys.onReturnPressed: {
|
||||||
triggered()
|
triggered()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Keys.onEscapePressed: {
|
||||||
|
parentMenu.close()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -135,14 +135,10 @@ GridView {
|
|||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu {
|
NavigableMenu {
|
||||||
id: pcContextMenu
|
id: pcContextMenu
|
||||||
NavigableMenuItem {
|
NavigableMenuItem {
|
||||||
text: "Wake PC"
|
parentMenu: pcContextMenu
|
||||||
onTriggered: computerModel.wakeComputer(index)
|
|
||||||
visible: !model.addPc && !model.online && model.wakeable
|
|
||||||
}
|
|
||||||
NavigableMenuItem {
|
|
||||||
text: "Delete PC"
|
text: "Delete PC"
|
||||||
onTriggered: {
|
onTriggered: {
|
||||||
deletePcDialog.pcIndex = index
|
deletePcDialog.pcIndex = index
|
||||||
@ -150,6 +146,12 @@ GridView {
|
|||||||
deletePcDialog.open()
|
deletePcDialog.open()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
NavigableMenuItem {
|
||||||
|
parentMenu: pcContextMenu
|
||||||
|
text: "Wake PC"
|
||||||
|
onTriggered: computerModel.wakeComputer(index)
|
||||||
|
visible: !model.addPc && !model.online && model.wakeable
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
|
@ -13,5 +13,6 @@
|
|||||||
<file>gui/CliQuitStreamSegue.qml</file>
|
<file>gui/CliQuitStreamSegue.qml</file>
|
||||||
<file>gui/CliStartStreamSegue.qml</file>
|
<file>gui/CliStartStreamSegue.qml</file>
|
||||||
<file>gui/AutoResizingComboBox.qml</file>
|
<file>gui/AutoResizingComboBox.qml</file>
|
||||||
|
<file>gui/NavigableMenu.qml</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user