Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2018-07-31 03:37:46 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-07-31 03:38:01 +0300
commit1195a4a040ba8ecffd3221f5aa38c7be5272124b (patch)
tree31ccc833d5789b4b84ac788ef13e2f524267f95d
parent885cc4cf9a1d5c167e4cbd26c3294d8b1ad400d8 (diff)
UI: add check for any kind of popup
Fixes T56155 when merging into 2.8
-rw-r--r--source/blender/editors/interface/interface_context_menu.c2
-rw-r--r--source/blender/editors/interface/interface_intern.h1
-rw-r--r--source/blender/editors/interface/interface_query.c8
3 files changed, 10 insertions, 1 deletions
diff --git a/source/blender/editors/interface/interface_context_menu.c b/source/blender/editors/interface/interface_context_menu.c
index 0306139bac0..54e755f6cc6 100644
--- a/source/blender/editors/interface/interface_context_menu.c
+++ b/source/blender/editors/interface/interface_context_menu.c
@@ -533,7 +533,7 @@ bool ui_popup_context_menu_for_button(bContext *C, uiBut *but)
}
/* Show header tools for header buttons. */
- if (ui_block_is_menu(but->block) == false) {
+ if (ui_block_is_popup_any(but->block) == false) {
ARegion *ar = CTX_wm_region(C);
if (ar && (ar->regiontype == RGN_TYPE_HEADER)) {
uiItemMenuF(layout, IFACE_("Header"), ICON_NONE, ED_screens_header_tools_menu_create, NULL);
diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h
index dc5e100b5f2..75f2efdf3aa 100644
--- a/source/blender/editors/interface/interface_intern.h
+++ b/source/blender/editors/interface/interface_intern.h
@@ -752,6 +752,7 @@ bool ui_but_is_toggle(const uiBut *but);
extern bool ui_block_is_menu(const uiBlock *block) ATTR_WARN_UNUSED_RESULT;
extern bool ui_block_is_pie_menu(const uiBlock *block) ATTR_WARN_UNUSED_RESULT;
+extern bool ui_block_is_popup_any(const uiBlock *block) ATTR_WARN_UNUSED_RESULT;
/* interface_context_menu.c */
bool ui_popup_context_menu_for_button(struct bContext *C, uiBut *but);
diff --git a/source/blender/editors/interface/interface_query.c b/source/blender/editors/interface/interface_query.c
index f7dbb9b14ed..1ad4a7d7f31 100644
--- a/source/blender/editors/interface/interface_query.c
+++ b/source/blender/editors/interface/interface_query.c
@@ -86,6 +86,14 @@ bool ui_block_is_pie_menu(const uiBlock *block)
return ((block->flag & UI_BLOCK_RADIAL) != 0);
}
+bool ui_block_is_popup_any(const uiBlock *block)
+{
+ return (
+ ui_block_is_menu(block) ||
+ ui_block_is_pie_menu(block)
+ );
+}
+
bool UI_block_is_empty(const uiBlock *block)
{
for (const uiBut *but = block->buttons.first; but; but = but->next) {