diff options
author | Harley Acheson <harley> | 2019-04-25 15:40:53 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-04-25 19:19:47 +0300 |
commit | b89cabb300816427273596736aa45ab9edca76b9 (patch) | |
tree | 3527083af1e51ce1cb0c10e7a6117d901b6788a5 /source/blender/editors/interface | |
parent | 905f2d84af4d200dc23454edc286965808334eb6 (diff) |
UI: hide redundant menu separators automatically
Differential Revision: https://developer.blender.org/D4682
Diffstat (limited to 'source/blender/editors/interface')
-rw-r--r-- | source/blender/editors/interface/interface_layout.c | 3 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_query.c | 9 |
2 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c index cfedd40bfd1..935d89937e0 100644 --- a/source/blender/editors/interface/interface_layout.c +++ b/source/blender/editors/interface/interface_layout.c @@ -2968,6 +2968,9 @@ void uiItemS_ex(uiLayout *layout, float factor) { uiBlock *block = layout->root->block; bool is_menu = ui_block_is_menu(block); + if (is_menu && !UI_block_can_add_separator(block)) { + return; + } int space = (is_menu) ? 0.45f * UI_UNIT_X : 0.3f * UI_UNIT_X; space *= factor; diff --git a/source/blender/editors/interface/interface_query.c b/source/blender/editors/interface/interface_query.c index e1f91be1631..a2180e63efb 100644 --- a/source/blender/editors/interface/interface_query.c +++ b/source/blender/editors/interface/interface_query.c @@ -473,6 +473,15 @@ bool UI_block_is_empty(const uiBlock *block) return true; } +bool UI_block_can_add_separator(const uiBlock *block) +{ + if (ui_block_is_menu(block)) { + const uiBut *but = block->buttons.last; + return (but && !ELEM(but->type, UI_BTYPE_SEPR_LINE, UI_BTYPE_SEPR)); + } + return true; +} + /** \} */ /* -------------------------------------------------------------------- */ |