on xenial help sign in
Close menus on indicator item activate
e6e131fNick Dedekind
Panel/Panel.qml+24
@@ -31,6 +31,30 @@ Item {
31
31
32 signal searchClicked
32 signal searchClicked
33
33
34+ function hideIndicatorMenu(delay) {
35+ if (delay !== undefined) {
36+ hideTimer.interval = delay;
37+ hideTimer.start();
38+ } else if (indicatorsMenu.shown){
39+ indicatorsMenu.hide();
40+ }
41+ }
42+
43+ Timer {
44+ id: hideTimer
45+ running: false
46+ onTriggered: {
47+ if (indicatorsMenu.shown) {
48+ indicatorsMenu.hide();
49+ }
50+ }
51+ }
52+
53+ Connections {
54+ target: indicatorsMenu
55+ onShown: hideTimer.stop()
56+ }
57+
34 PanelBackground {
58 PanelBackground {
35 id: panelBackground
59 id: panelBackground
36 anchors {
60 anchors {
Shell.qml+4
@@ -564,6 +564,10 @@ FocusScope {
564 stages.hide()
564 stages.hide()
565 }
565 }
566
566
567+ function hideIndicatorMenu(delay) {
568+ panel.hideIndicatorMenu(delay);
569+ }
570+
567 Item {
571 Item {
568 id: overlay
572 id: overlay
569
573
plugins/Unity/Indicators/Messaging/qml/MessageMenuItemFactory.qml+3
@@ -73,6 +73,7 @@ Indicators.BaseMenuItem {
73
73
74 onActivateApp: {
74 onActivateApp: {
75 menuItem.model.activate(modelIndex, true);
75 menuItem.model.activate(modelIndex, true);
76+ shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
76 }
77 }
77 onDismiss: {
78 onDismiss: {
78 menuItem.model.activate(modelIndex, false);
79 menuItem.model.activate(modelIndex, false);
@@ -101,6 +102,7 @@ Indicators.BaseMenuItem {
101
102
102 onActivateApp: {
103 onActivateApp: {
103 menuItem.model.activate(modelIndex, true);
104 menuItem.model.activate(modelIndex, true);
105+ shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
104 }
106 }
105 onDismiss: {
107 onDismiss: {
106 menuItem.model.activate(modelIndex, false);
108 menuItem.model.activate(modelIndex, false);
@@ -140,6 +142,7 @@ Indicators.BaseMenuItem {
140
142
141 onActivateApp: {
143 onActivateApp: {
142 menuItem.model.activate(modelIndex, true);
144 menuItem.model.activate(modelIndex, true);
145+ shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
143 }
146 }
144 onDismiss: {
147 onDismiss: {
145 menuItem.model.activate(modelIndex, false);
148 menuItem.model.activate(modelIndex, false);
plugins/Unity/Indicators/qml/MenuItemFactory.qml+6
@@ -22,6 +22,7 @@ import Unity.Indicators 0.1 as Indicators
22import Unity.Indicators.Network 0.1 as ICNetwork
22import Unity.Indicators.Network 0.1 as ICNetwork
23import Unity.Indicators.Messaging 0.1 as ICMessaging
23import Unity.Indicators.Messaging 0.1 as ICMessaging
24import QMenuModel 0.1 as QMenuModel
24import QMenuModel 0.1 as QMenuModel
25+import Ubuntu.Components 0.1
25
26
26Item {
27Item {
27 id: menuFactory
28 id: menuFactory
@@ -95,6 +96,7 @@ Item {
95
96
96 onActivate: {
97 onActivate: {
97 model.activate(modelIndex);
98 model.activate(modelIndex);
99+ shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
98 }
100 }
99 }
101 }
100 }
102 }
@@ -132,6 +134,7 @@ Item {
132
134
133 onActivate: {
135 onActivate: {
134 model.activate(modelIndex);
136 model.activate(modelIndex);
137+ shell.hideIndicatorMenu(UbuntuAnimation.BriskDuration);
135 }
138 }
136 }
139 }
137 }
140 }
@@ -148,6 +151,7 @@ Item {
148
151
149 onActivate: {
152 onActivate: {
150 model.activate(modelIndex);
153 model.activate(modelIndex);
154+ shell.hideIndicatorMenu(UbuntuAnimation.BriskDuration);
151 }
155 }
152 }
156 }
153 }
157 }
@@ -190,6 +194,7 @@ Item {
190 }
194 }
191 onActivate: {
195 onActivate: {
192 model.activate(modelIndex);
196 model.activate(modelIndex);
197+ shell.hideIndicatorMenu(UbuntuAnimation.BriskDuration);
193 }
198 }
194 }
199 }
195 }
200 }
@@ -225,6 +230,7 @@ Item {
225 }
230 }
226 onActivateApp: {
231 onActivateApp: {
227 model.activate(modelIndex, true);
232 model.activate(modelIndex, true);
233+ shell.hideIndicatorMenu(UbuntuAnimation.FastDuration);
228 }
234 }
229 onDismiss: {
235 onDismiss: {
230 model.activate(modelIndex, false);
236 model.activate(modelIndex, false);