From d44dbb373d084623d60dbc667bc90e0f9f98564a Mon Sep 17 00:00:00 2001 From: Damien Guard Date: Wed, 24 Aug 2016 21:45:21 -0700 Subject: [PATCH] Remove trailing context menu separator fixing #5390 --- spec/context-menu-manager-spec.coffee | 11 +++++++++++ src/context-menu-manager.coffee | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/spec/context-menu-manager-spec.coffee b/spec/context-menu-manager-spec.coffee index b336361f8..63815d1dd 100644 --- a/spec/context-menu-manager-spec.coffee +++ b/spec/context-menu-manager-spec.coffee @@ -149,6 +149,17 @@ describe "ContextMenuManager", -> shouldDisplay = false expect(contextMenu.templateForEvent(dispatchedEvent)).toEqual [] + it "prunes a trailing separator", -> + contextMenu.add + '.grandchild': [ + {label: 'A', command: 'a'}, + {type: 'separator'}, + {label: 'B', command: 'b'}, + {type: 'separator'} + ] + + expect(contextMenu.templateForEvent({target: grandchild}).length).toBe(3) + it "throws an error when the selector is invalid", -> addError = null try diff --git a/src/context-menu-manager.coffee b/src/context-menu-manager.coffee index 936a9c6b6..1fe780db3 100644 --- a/src/context-menu-manager.coffee +++ b/src/context-menu-manager.coffee @@ -145,6 +145,10 @@ class ContextMenuManager currentTarget = currentTarget.parentElement + # Remove trailing separator + if template.length > 0 and template[template.length - 1].type is 'separator' + template.splice(template.length-1, 1) + template # Returns an object compatible with `::add()` or `null`.