diff options
author | Adrian Egloff | 2021-06-16 08:56:31 +0000 |
---|---|---|
committer | Adrian Egloff | 2021-06-21 11:46:28 +0000 |
commit | 47553759ba5f47d5594b0a966bc2cbc2055e40f5 (patch) | |
tree | 51b2b63e6e577edbef26fbe307e4bb16b552125e | |
parent | 056e9e5c75ce8ce0e74505ca6aec08cfa77a1d3d (diff) | |
download | org.eclipse.scout.rt-review/adrian_egloff/182033.tar.gz org.eclipse.scout.rt-review/adrian_egloff/182033.tar.xz org.eclipse.scout.rt-review/adrian_egloff/182033.zip |
Add all menus to sequence-box even if they are invisiblereview/adrian_egloff/182033
A menu could turn visible without _handleStatus begin called again,
therefore we must add hidden menus to the sequence-box at this point.
297653
6 files changed, 13 insertions, 10 deletions
diff --git a/eclipse-scout-core/src/form/fields/FormField.js b/eclipse-scout-core/src/form/fields/FormField.js index dcd62ad8b3..f5ba0bcac2 100644 --- a/eclipse-scout-core/src/form/fields/FormField.js +++ b/eclipse-scout-core/src/form/fields/FormField.js @@ -856,11 +856,13 @@ export default class FormField extends Widget { } } - getContextMenuItems() { + getContextMenuItems(onlyVisible = true) { if (this.currentMenuTypes.length) { - return menuUtil.filter(this.menus, this.currentMenuTypes, true); + return menuUtil.filter(this.menus, this.currentMenuTypes, onlyVisible); + } else if (onlyVisible) { + return this.menus.filter(menu => menu.visible); } - return this.menus.filter(menu => menu.visible); + return this.menus; } _getMenusForStatus(status) { diff --git a/eclipse-scout-core/src/form/fields/button/Button.js b/eclipse-scout-core/src/form/fields/button/Button.js index 8c824ac8be..13f271b1f8 100644 --- a/eclipse-scout-core/src/form/fields/button/Button.js +++ b/eclipse-scout-core/src/form/fields/button/Button.js @@ -64,7 +64,7 @@ export default class Button extends FormField { this._setInheritAccessibility(this.inheritAccessibility && !this._isIgnoreAccessibilityFlags()); } - getContextMenuItems() { + getContextMenuItems(onlyVisible = true) { return []; } diff --git a/eclipse-scout-core/src/form/fields/groupbox/GroupBox.js b/eclipse-scout-core/src/form/fields/groupbox/GroupBox.js index 564951c86f..248b397f75 100644 --- a/eclipse-scout-core/src/form/fields/groupbox/GroupBox.js +++ b/eclipse-scout-core/src/form/fields/groupbox/GroupBox.js @@ -520,11 +520,11 @@ export default class GroupBox extends CompositeField { this._renderBorderVisible(); } - getContextMenuItems() { + getContextMenuItems(onlyVisible = true) { if (this.menuBarVisible) { return []; } - return super.getContextMenuItems(); + return super.getContextMenuItems(onlyVisible); } setMenuBarVisible(visible) { diff --git a/eclipse-scout-core/src/form/fields/sequencebox/SequenceBox.js b/eclipse-scout-core/src/form/fields/sequencebox/SequenceBox.js index dfbc2cc76b..a6bc8f4608 100644 --- a/eclipse-scout-core/src/form/fields/sequencebox/SequenceBox.js +++ b/eclipse-scout-core/src/form/fields/sequencebox/SequenceBox.js @@ -167,10 +167,11 @@ export default class SequenceBox extends CompositeField { this._isTooltipTextOverwritten = false; } - if (this._lastVisibleField.getContextMenuItems() && this._lastVisibleField.getContextMenuItems().length > 0) { + let menuItems = this._lastVisibleField.getContextMenuItems(false); + if (menuItems && menuItems.length > 0) { // Change owner to make sure menu won't be destroyed when setMenus is called this._updateBoxMenuOwner(this.fieldStatus); - this.setMenus(this._lastVisibleField.getContextMenuItems()); + this.setMenus(menuItems); this.setMenusVisible(this._lastVisibleField.menusVisible); this._isMenusOverwritten = true; } else { diff --git a/eclipse-scout-core/src/form/fields/tabbox/TabBox.js b/eclipse-scout-core/src/form/fields/tabbox/TabBox.js index 67b424fa4a..47cb80ddc5 100644 --- a/eclipse-scout-core/src/form/fields/tabbox/TabBox.js +++ b/eclipse-scout-core/src/form/fields/tabbox/TabBox.js @@ -85,7 +85,7 @@ export default class TabBox extends CompositeField { this._removeSelectedTab(); } - getContextMenuItems() { + getContextMenuItems(onlyVisible = true) { // handled by the menubar return []; } diff --git a/eclipse-scout-core/src/form/fields/tabbox/TabItem.js b/eclipse-scout-core/src/form/fields/tabbox/TabItem.js index b62164a3ce..c5840a5aa8 100644 --- a/eclipse-scout-core/src/form/fields/tabbox/TabItem.js +++ b/eclipse-scout-core/src/form/fields/tabbox/TabItem.js @@ -52,7 +52,7 @@ export default class TabItem extends GroupBox { this.setProperty('marked', marked); } - getContextMenuItems() { + getContextMenuItems(onlyVisible = true) { return []; } |