Commit: 5a1ef2dc786f5b7529ed9d1d82628ba5e5b87413
Author: Julian Eisel
Date:   Mon Oct 3 18:13:57 2022 +0200
Branches: blender-v3.3-release
https://developer.blender.org/rB5a1ef2dc786f5b7529ed9d1d82628ba5e5b87413

Fix T101510: Incorrect context for running data unlink from template ID

There was already a fix for this, but it got broken again with c973d333da31.

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

M       source/blender/editors/include/UI_interface.h
M       source/blender/editors/interface/interface_templates.c

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

diff --git a/source/blender/editors/include/UI_interface.h 
b/source/blender/editors/include/UI_interface.h
index a8d25b75036..51522b20bca 100644
--- a/source/blender/editors/include/UI_interface.h
+++ b/source/blender/editors/include/UI_interface.h
@@ -1392,6 +1392,7 @@ void UI_but_extra_icon_string_info_get(struct bContext 
*C, uiButExtraOpIcon *ext
  * - AutoButR: RNA property button with type automatically defined.
  */
 enum {
+  UI_ID_NOP = 0,
   UI_ID_RENAME = 1 << 0,
   UI_ID_BROWSE = 1 << 1,
   UI_ID_ADD_NEW = 1 << 2,
diff --git a/source/blender/editors/interface/interface_templates.c 
b/source/blender/editors/interface/interface_templates.c
index 25695675194..f051e9004ca 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -910,6 +910,11 @@ static void template_id_cb(bContext *C, void *arg_litem, 
void *arg_event)
   const char *undo_push_label = NULL;
 
   switch (event) {
+    case UI_ID_NOP:
+      /* Don't do anything, typically set for buttons that execute an operator 
instead. They may
+       * still assign the callback so the button can be identified as part of 
an ID-template. See
+       * #UI_context_active_but_prop_get_templateID(). */
+      break;
     case UI_ID_BROWSE:
     case UI_ID_PIN:
       RNA_warning("warning, id event %d shouldn't come here", event);
@@ -1543,7 +1548,8 @@ static void template_ID(const bContext *C,
                           UI_UNIT_Y,
                           NULL);
       /* so we can access the template from operators, font unlinking needs 
this */
-      UI_but_funcN_set(but, NULL, MEM_dupallocN(template_ui), NULL);
+      UI_but_funcN_set(
+          but, template_id_cb, MEM_dupallocN(template_ui), 
POINTER_FROM_INT(UI_ID_NOP));
     }
     else {
       if ((RNA_property_flag(template_ui->prop) & PROP_NEVER_UNLINK) == 0) {

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to