Fix focus issues after dismissal of consecutive dialogs (like Add PC -> Add PC error)
This commit is contained in:
parent
bc38c302ed
commit
0aa87aacc6
3 changed files with 14 additions and 16 deletions
|
|
@ -2,27 +2,16 @@ import QtQuick 2.0
|
|||
import QtQuick.Controls 2.2
|
||||
|
||||
Dialog {
|
||||
property Item originalFocusItem
|
||||
|
||||
parent: overlay
|
||||
|
||||
x: Math.round((parent.width - width) / 2)
|
||||
y: Math.round((parent.height - height) / 2)
|
||||
|
||||
onAboutToShow: {
|
||||
originalFocusItem = window.activeFocusItem
|
||||
}
|
||||
|
||||
onOpened: {
|
||||
// Force focus on the dialog to ensure keyboard navigation works
|
||||
forceActiveFocus()
|
||||
}
|
||||
|
||||
onClosed: {
|
||||
onAboutToHide: {
|
||||
// We must force focus back to the last item for platforms without
|
||||
// support for more than one active window like Steam Link. If
|
||||
// we don't, gamepad and keyboard navigation will break after a
|
||||
// dialog appears.
|
||||
originalFocusItem.forceActiveFocus()
|
||||
stackView.forceActiveFocus()
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,11 +7,16 @@ import SystemProperties 1.0
|
|||
NavigableDialog {
|
||||
id: dialog
|
||||
|
||||
property alias text: dialogTextControl.dialogText
|
||||
property alias text: dialogLabel.dialogText
|
||||
|
||||
property string helpText
|
||||
property string helpUrl : "https://github.com/moonlight-stream/moonlight-docs/wiki/Troubleshooting"
|
||||
|
||||
onOpened: {
|
||||
// Force keyboard focus on the label so keyboard navigation works
|
||||
dialogLabel.forceActiveFocus()
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: 10
|
||||
|
||||
|
|
@ -29,10 +34,9 @@ NavigableDialog {
|
|||
Label {
|
||||
property string dialogText
|
||||
|
||||
id: dialogTextControl
|
||||
id: dialogLabel
|
||||
text: dialogText + (SystemProperties.hasBrowser ? (" " + helpText) : "")
|
||||
wrapMode: Text.WordWrap
|
||||
focus: true
|
||||
|
||||
// Cap the width so the dialog doesn't grow horizontally forever. This
|
||||
// will cause word wrap to kick in.
|
||||
|
|
|
|||
|
|
@ -424,6 +424,11 @@ ApplicationWindow {
|
|||
|
||||
standardButtons: Dialog.Ok | Dialog.Cancel
|
||||
|
||||
onOpened: {
|
||||
// Force keyboard focus on the textbox so keyboard navigation works
|
||||
editText.forceActiveFocus()
|
||||
}
|
||||
|
||||
onAccepted: {
|
||||
if (editText.text) {
|
||||
ComputerManager.addNewHost(editText.text, false)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue