@@ -22,8 +22,8 @@ Item {
23 property alias mainStageApplications: mainStageModel
23 property alias mainStageApplications: mainStageModel
24 property alias sideStageApplications: sideStageModel
24 property alias sideStageApplications: sideStageModel
25− property alias mainStageFocusedApplication: mainStageModel.focusedApplication
25+ property variant mainStageFocusedApplication: null
26− property alias sideStageFocusedApplication: sideStageModel.focusedApplication
26+ property variant sideStageFocusedApplication: null
27 property bool sideStageEnabled: true
27 property bool sideStageEnabled: true
28 signal focusRequested(string desktopFile)
28 signal focusRequested(string desktopFile)
29 property bool keyboardVisible: ApplicationManager.keyboardVisible
29 property bool keyboardVisible: ApplicationManager.keyboardVisible
@@ -31,6 +31,9 @@ Item {
32 property bool fake: ApplicationManager.fake ? ApplicationManager.fake : false
32 property bool fake: ApplicationManager.fake ? ApplicationManager.fake : false
34+ onMainStageFocusedApplicationChanged: (mainStageFocusedApplication)?mainStageFocusedApplication.appId: "null"
35+ onSideStageFocusedApplicationChanged: (sideStageFocusedApplication)?sideStageFocusedApplication.appId: "null"
34 ApplicationsModelStageFiltered {
37 ApplicationsModelStageFiltered {
35 id: mainStageModel
38 id: mainStageModel
36 stage: ApplicationInfo.MainStage
39 stage: ApplicationInfo.MainStage
@@ -41,6 +44,29 @@ Item {
41 stage: ApplicationInfo.SideStage
44 stage: ApplicationInfo.SideStage
48+ target: ApplicationManager
49+ onFocusedApplicationIdChanged: {
50+ var app = ApplicationManager.findApplication(ApplicationManager.focusedApplicationId)
51+ if (!app) { //nothing at all focused, so clear all
52+ mainStageFocusedApplication = null;
53+ sideStageFocusedApplication = null;
55+ if (app.stage == ApplicationInfo.MainStage) {
56+ mainStageFocusedApplication = app;
57+ // possible the side stage app being unfocused fired this signal, so check for it
58+ if (sideStageFocusedApplication && !sideStageFocusedApplication.focused)
59+ sideStageFocusedApplication = null;
61+ sideStageFocusedApplication = app;
62+ // possible the main stage app being unfocused fired this signal, so check for it
63+ if (mainStageFocusedApplication && !mainStageFocusedApplication.focused)
64+ mainStageFocusedApplication = null;
44 function activateApplication(desktopFile, argument) {
70 function activateApplication(desktopFile, argument) {
45 var appId;
71 var appId;
@@ -65,20 +91,20 @@ Item {
68− function stopProcess(application) {
94+ function stopApplication(application) {
69 var appId;
95 var appId;
71 // HACK: might be called with appId, or else with Application object
97 // HACK: might be called with appId, or else with Application object
72 if (typeof application == "string") {
98 if (typeof application == "string") {
73− appId = desktopFileToAppId(application.desktopFile);
75 appId = application;
99 appId = application;
101+ appId = desktopFileToAppId(application.desktopFile);
78− ApplicationManager.stopProcess(appId);
104+ ApplicationManager.stopApplication(appId);
81− function focusApplication(application) {print("focusApplication", application.appId)
107+ function focusApplication(application) {
82 if (application == null || application == undefined) {
108 if (application == null || application == undefined) {
@@ -90,7 +116,7 @@ Item {
90 ApplicationManager.unfocusCurrentApplication();
116 ApplicationManager.unfocusCurrentApplication();
93− function moveRunningApplicationStackPosition(from, to, stage) { print("moveRunningApplicationStackPosition", from, to, stage)
119+ function moveRunningApplicationStackPosition(from, to, stage) {
94 if (from == to || from < 0 || to < 0) return;
120 if (from == to || from < 0 || to < 0) return;
96 if (stage == ApplicationInfo.SideStage) {
122 if (stage == ApplicationInfo.SideStage) {