From b86e84d38906fd247fe3a06a030dc2fb7aee6a91 Mon Sep 17 00:00:00 2001 From: jderose9 Date: Fri, 24 Feb 2017 22:02:31 -0500 Subject: [PATCH] Get submenus working in secondary menu For #2 --- secondaryMenu.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/secondaryMenu.js b/secondaryMenu.js index 87e0212..e91904d 100644 --- a/secondaryMenu.js +++ b/secondaryMenu.js @@ -133,8 +133,8 @@ _redisplay: function() { let appMenu = this._source.app.menu; if(appMenu) { this._appendSeparator(); - this._remoteMenu = new RemoteMenu.RemoteMenu(this._source.actor, this._source.app.menu, this._source.app.action_group); - let appMenuItems = this._remoteMenu._getMenuItems(); + let remoteMenu = new RemoteMenu.RemoteMenu(this._source.actor, this._source.app.menu, this._source.app.action_group); + let appMenuItems = remoteMenu._getMenuItems(); for(let appMenuIdx in appMenuItems){ let menuItem = appMenuItems[appMenuIdx]; let labelText = menuItem.actor.label_actor.text; @@ -170,7 +170,17 @@ _redisplay: function() { })); menuItem.actor.get_parent().remove_child(menuItem.actor); - this.addMenuItem(menuItem); + if(menuItem instanceof PopupMenu.PopupSubMenuMenuItem) { + let newSubMenuMenuItem = new PopupMenu.PopupSubMenuMenuItem(labelText); + let appSubMenuItems = menuItem.menu._getMenuItems(); + for(let appSubMenuIdx in appSubMenuItems){ + let subMenuItem = appSubMenuItems[appSubMenuIdx]; + subMenuItem.actor.get_parent().remove_child(subMenuItem.actor); + newSubMenuMenuItem.menu.addMenuItem(subMenuItem); + } + this.addMenuItem(newSubMenuMenuItem); + } else + this.addMenuItem(menuItem); } }