[Bf-blender-cvs] [06b183d1ca4] blender-v3.0-release: Fix T91507: Crash when calling context menu from confirmation popup

Julian Eisel noreply at git.blender.org
Mon Nov 1 16:42:52 CET 2021


Commit: 06b183d1ca48ea638b8c54102c0c9adf55cef76f
Author: Julian Eisel
Date:   Mon Nov 1 16:30:40 2021 +0100
Branches: blender-v3.0-release
https://developer.blender.org/rB06b183d1ca48ea638b8c54102c0c9adf55cef76f

Fix T91507: Crash when calling context menu from confirmation popup

A typical issue with popup handling: We have to respect the menu-region
and give it priority over the regular region for handling. In this case
there isn't a regular region in context even.

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

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

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

diff --git a/source/blender/editors/interface/interface_context_menu.c b/source/blender/editors/interface/interface_context_menu.c
index 516fd4fc7fc..72e7203c6ea 100644
--- a/source/blender/editors/interface/interface_context_menu.c
+++ b/source/blender/editors/interface/interface_context_menu.c
@@ -926,7 +926,7 @@ bool ui_popup_context_menu_for_button(bContext *C, uiBut *but, const wmEvent *ev
   }
 
   {
-    const ARegion *region = CTX_wm_region(C);
+    const ARegion *region = CTX_wm_menu(C) ? CTX_wm_menu(C) : CTX_wm_region(C);
     uiButTreeRow *treerow_but = (uiButTreeRow *)ui_tree_row_find_mouse_over(region, event->xy);
     if (treerow_but) {
       BLI_assert(treerow_but->but.type == UI_BTYPE_TREEROW);
@@ -1212,7 +1212,7 @@ bool ui_popup_context_menu_for_button(bContext *C, uiBut *but, const wmEvent *ev
   }
 
   /* UI List item context menu. Scripts can add items to it, by default there's nothing shown. */
-  ARegion *region = CTX_wm_region(C);
+  const ARegion *region = CTX_wm_menu(C) ? CTX_wm_menu(C) : CTX_wm_region(C);
   const bool is_inside_listbox = ui_list_find_mouse_over(region, event) != NULL;
   const bool is_inside_listrow = is_inside_listbox ?
                                      ui_list_row_find_mouse_over(region, event->xy) != NULL :



More information about the Bf-blender-cvs mailing list