@@ -93,19 +93,29 @@ Item {
9393 function show() {
9494 if (!__popup) {
9595 __popup = menuComponent.createObject(root, { objectName: visualItem.objectName + "-menu" });
96+ // force the current item to be the newly popped up menu
9697 } else {
9798 __popup.visible = true;
9899 }
100+ d.currentItem = visualItem;
99101 }
100102 function hide() {
101103 if (__popup) {
102104 __popup.visible = false;
105+
106+ if (d.currentItem === visualItem) {
107+ d.currentItem = null;
108+ }
103109 }
104110 }
105111 function dismiss() {
106112 if (__popup) {
107113 __popup.destroy();
108114 __popup = null;
115+
116+ if (d.currentItem === visualItem) {
117+ d.currentItem = null;
118+ }
109119 }
110120 }
111121
@@ -126,14 +136,6 @@ Item {
126136 }
127137 }
128138
129− onPopupVisibleChanged: {
130− if (popupVisible) {
131− d.currentItem = visualItem;
132− } else if (d.currentItem === visualItem) {
133− d.currentItem = null;
134− }
135− }
136−
137139 RowLayout {
138140 id: column
139141 spacing: units.gu(1)