[Bf-blender-cvs] [9f25dad0a9e] blender2.8: Fix T59535: Select linked delimit doesn't refresh

Campbell Barton noreply at git.blender.org
Tue Dec 18 07:23:30 CET 2018


Commit: 9f25dad0a9e1e172c0f6e19de3ce42cbbeef56f1
Author: Campbell Barton
Date:   Tue Dec 18 17:22:11 2018 +1100
Branches: blender2.8
https://developer.blender.org/rB9f25dad0a9e1e172c0f6e19de3ce42cbbeef56f1

Fix T59535: Select linked delimit doesn't refresh

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

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

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

diff --git a/source/blender/editors/interface/interface_layout.c b/source/blender/editors/interface/interface_layout.c
index c0706ed8450..7778444435e 100644
--- a/source/blender/editors/interface/interface_layout.c
+++ b/source/blender/editors/interface/interface_layout.c
@@ -726,6 +726,8 @@ static void ui_item_enum_expand_exec(
 			but = uiDefButR_prop(block, but_type, 0, name, 0, 0, itemw, h, ptr, prop, -1, 0, value, -1, -1, NULL);
 
 		if (RNA_property_flag(prop) & PROP_ENUM_FLAG) {
+			/* If this is set, assert since we're clobbering someone elses callback. */
+			BLI_assert(but->func == NULL);
 			UI_but_func_set(but, ui_item_enum_expand_handle, but, POINTER_FROM_INT(value));
 		}
 
diff --git a/source/blender/editors/interface/interface_templates.c b/source/blender/editors/interface/interface_templates.c
index d675f36fdea..d1261ed5c7e 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -1893,9 +1893,9 @@ void uiTemplateOperatorRedoProperties(uiLayout *layout, const bContext *C)
 		bool has_advanced = false;
 #endif
 
-		UI_block_func_set(block, ED_undo_operator_repeat_cb, op, NULL);
+		UI_block_func_handle_set(block, ED_undo_operator_repeat_cb_evt, op);
 		template_operator_redo_property_buts_draw(C, op, layout, layout_flags, NULL /* &has_advanced */ );
-		UI_block_func_set(block, NULL, NULL, NULL); /* may want to reset to old state instead of NULLing all */
+		/* Warning! this leaves the handle function for any other users of this block. */
 
 #if 0
 		if (has_advanced) {



More information about the Bf-blender-cvs mailing list