on xenial help sign in
Refactor focus handling: remove forceActiveFocus() usage
46ef101Daniel d'Andrada
qml/Stages/ApplicationWindow.qml−3
@@ -135,9 +135,6 @@ FocusScope {
135 onSurfaceChanged: {
135 onSurfaceChanged: {
136 if (sessionContainer.surface) {
136 if (sessionContainer.surface) {
137 surfaceInitTimer.start();
137 surfaceInitTimer.start();
138− if (ApplicationManager.focusedApplicationId == application.appId) {
139− root.forceActiveFocus();
140− }
141 } else {
138 } else {
142 d.surfaceInitialized = false;
139 d.surfaceInitialized = false;
143 }
140 }
qml/Stages/DesktopStage.qml+2−7
@@ -131,6 +131,7 @@ Rectangle {
131 id: appContainer
131 id: appContainer
132 objectName: "appContainer"
132 objectName: "appContainer"
133 anchors.fill: parent
133 anchors.fill: parent
134+ focus: true
134
135
135 Keys.onPressed: {
136 Keys.onPressed: {
136 switch (event.key) {
137 switch (event.key) {
@@ -206,12 +207,6 @@ Rectangle {
206 onFocusChanged: {
207 onFocusChanged: {
207 if (focus && ApplicationManager.focusedApplicationId !== model.appId) {
208 if (focus && ApplicationManager.focusedApplicationId !== model.appId) {
208 ApplicationManager.requestFocusApplication(model.appId);
209 ApplicationManager.requestFocusApplication(model.appId);
209− decoratedWindow.forceActiveFocus();
210− }
211− }
212− Component.onCompleted: {
213− if (ApplicationManager.focusedApplicationId == model.appId) {
214− decoratedWindow.forceActiveFocus();
215 }
210 }
216 }
211 }
217
212
@@ -325,7 +320,7 @@ Rectangle {
325 windowHeight: appDelegate.height
320 windowHeight: appDelegate.height
326 application: ApplicationManager.get(index)
321 application: ApplicationManager.get(index)
327 active: ApplicationManager.focusedApplicationId === model.appId
322 active: ApplicationManager.focusedApplicationId === model.appId
328− focus: false
323+ focus: true
329
324
330 onClose: ApplicationManager.stopApplication(model.appId)
325 onClose: ApplicationManager.stopApplication(model.appId)
331 onMaximize: appDelegate.maximize()
326 onMaximize: appDelegate.maximize()
tests/qmltests/Stages/tst_DesktopStage.qml+2−3
@@ -61,7 +61,6 @@ Rectangle {
61 Component.onDestruction: {
61 Component.onDestruction: {
62 desktopStageLoader.itemDestroyed = true;
62 desktopStageLoader.itemDestroyed = true;
63 }
63 }
64− focus: true
65 }
64 }
66 }
65 }
67 }
66 }
@@ -142,8 +141,8 @@ Rectangle {
142
141
143 function test_appFocusSwitch_data() {
142 function test_appFocusSwitch_data() {
144 return [
143 return [
145− {tag: "dash", apps: [ "unity8-dash", "dialer-app", "camera-app" ], focusfrom: 0, focusTo: 1 },
144+ {tag: "dash to dialer", apps: [ "unity8-dash", "dialer-app", "camera-app" ], focusfrom: 0, focusTo: 1 },
146− {tag: "dash", apps: [ "unity8-dash", "dialer-app", "camera-app" ], focusfrom: 1, focusTo: 0 },
145+ {tag: "dialer to dash", apps: [ "unity8-dash", "dialer-app", "camera-app" ], focusfrom: 1, focusTo: 0 },
147 ]
146 ]
148 }
147 }
149
148