[Bf-blender-cvs] [2bc9396b551] blender2.8: UI: disable popovers when panel poll fails

Campbell Barton noreply at git.blender.org
Wed May 2 11:03:18 CEST 2018


Commit: 2bc9396b551ff15cb3fee3eca91aa6357d71ae33
Author: Campbell Barton
Date:   Wed May 2 10:58:56 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB2bc9396b551ff15cb3fee3eca91aa6357d71ae33

UI: disable popovers when panel poll fails

===================================================================

M	source/blender/editors/interface/interface_layout.c

===================================================================

diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index d615bde0f28..347a45c6d2a 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -1948,7 +1948,7 @@ void uiItemM(uiLayout *layout, bContext *UNUSED(C), const char *menuname, const
 }
 
 /* popover */
-void uiItemPopoverPanel_ptr(uiLayout *layout, bContext *UNUSED(C), PanelType *pt, const char *name, int icon)
+void uiItemPopoverPanel_ptr(uiLayout *layout, bContext *C, PanelType *pt, const char *name, int icon)
 {
 	if (!name) {
 		name = CTX_IFACE_(pt->translation_context, pt->label);
@@ -1959,6 +1959,9 @@ void uiItemPopoverPanel_ptr(uiLayout *layout, bContext *UNUSED(C), PanelType *pt
 
 	uiBut *but = ui_item_menu(layout, name, icon, ui_item_paneltype_func, pt, NULL, NULL, false);
 	but->type = UI_BTYPE_POPOVER;
+	if (pt->poll && (pt->poll(C, pt) == false)) {
+		but->flag |= UI_BUT_DISABLED;
+	}
 }
 
 void uiItemPopoverPanel(



More information about the Bf-blender-cvs mailing list