on xenial help sign in
Fixed issue with session focus
commita02af0fd7648dce53e25cc90ec4146ed1c31d941 authorNick Dedekind <nick.dedekind@canonical.com> dateTue 2 Sep 2014, 16:51 (12 years ago) parentec70d0f
2 files changed+20−16
qml/Stages/ApplicationWindow.qml+12−8 qml/Stages/SessionContainer.qml+8−8
qml/Stages/ApplicationWindow.qml+12−8
@@ -53,6 +53,14 @@ Item {
5353 // might show the UI accommodating due to surface resizes on startup.
5454 // Remove this when possible
5555 property bool surfaceInitialized: false
56+
57+ function forceSurfaceActiveFocusIfReady() {
58+ if (sessionContainer.surface.focus &&
59+ sessionContainer.surface.parent === sessionContainer.surfaceContainer &&
60+ sessionContainer.surface.enabled) {
61+ sessionContainer.surface.forceActiveFocus();
62+ }
63+ }
5664 }
5765
5866 Timer {
@@ -65,14 +73,9 @@ Item {
6573 target: sessionContainer.surface
6674 // FIXME: I would rather not need to do this, but currently it doesn't get
6775 // active focus without it and I don't know why.
68− onFocusChanged: forceSurfaceActiveFocusIfReady();
69− onParentChanged: forceSurfaceActiveFocusIfReady();
70− onEnabledChanged: forceSurfaceActiveFocusIfReady();
71− function forceSurfaceActiveFocusIfReady() {
72− if (sessionContainer.surface.focus && sessionContainer.surface.parent === sessionContainer.surfaceContainer && sessionContainer.surface.enabled) {
73− sessionContainer.surface.forceActiveFocus();
74− }
75− }
76+ onFocusChanged: d.forceSurfaceActiveFocusIfReady();
77+ onParentChanged: d.forceSurfaceActiveFocusIfReady();
78+ onEnabledChanged: d.forceSurfaceActiveFocusIfReady();
7679 }
7780
7881 Image {
@@ -114,6 +117,7 @@ Item {
114117 } else {
115118 d.surfaceInitialized = false;
116119 }
120+ d.forceSurfaceActiveFocusIfReady();
117121 }
118122 }
119123
qml/Stages/SessionContainer.qml+8−8
@@ -21,8 +21,8 @@ Item {
2121 id: root
2222 objectName: "sessionContainer"
2323 property QtObject session
24− property var childSessions: session ? session.childSessions : null
25− property alias surface: _surfaceContainer.surface
24+ readonly property var childSessions: session ? session.childSessions : null
25+ readonly property alias surface: _surfaceContainer.surface
2626 property bool interactive: true
2727
2828 readonly property alias surfaceContainer: _surfaceContainer
@@ -33,16 +33,16 @@ Item {
3333 }
3434
3535 Binding {
36− target: surface
37− when: surface
36+ target: surfaceContainer.surface
37+ when: surfaceContainer.surface
3838 property: "enabled"
39− value: interactive
39+ value: root.interactive
4040 }
4141 Binding {
42− target: surface
43− when: surface
42+ target: surfaceContainer.surface
43+ when: surfaceContainer.surface
4444 property: "focus"
45− value: interactive
45+ value: root.interactive
4646 }
4747
4848 Repeater {