diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-03-20 14:40:38 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-03-20 15:10:34 +0300 |
commit | a1addc5c633d4c35eeb491c698052ec9300271dc (patch) | |
tree | 2f8cf2086db19233c3e641662f8a3cd540a5fd1e /source/blender/editors/interface/interface_region_popover.c | |
parent | 69fb859909c8e99a8e5e9e06607992d5b9a41473 (diff) |
UI: support for popups starting with buttons activated
While this could already be done from C,
this is now exposed to Python
Diffstat (limited to 'source/blender/editors/interface/interface_region_popover.c')
-rw-r--r-- | source/blender/editors/interface/interface_region_popover.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/editors/interface/interface_region_popover.c b/source/blender/editors/interface/interface_region_popover.c index d15eb7a3246..3176c7a454a 100644 --- a/source/blender/editors/interface/interface_region_popover.c +++ b/source/blender/editors/interface/interface_region_popover.c @@ -302,16 +302,24 @@ int UI_popover_panel_invoke( return (OPERATOR_CANCELLED | OPERATOR_PASS_THROUGH); } + uiBlock *block = NULL; if (keep_open) { - ui_popover_panel_create(C, NULL, NULL, ui_item_paneltype_func, pt); + uiPopupBlockHandle *handle = ui_popover_panel_create(C, NULL, NULL, ui_item_paneltype_func, pt); + uiPopover *pup = handle->popup_create_vars.arg; + block = pup->block; + } else { uiPopover *pup = UI_popover_begin(C, U.widget_unit * pt->ui_units_x); layout = UI_popover_layout(pup); UI_paneltype_draw(C, pt, layout); UI_popover_end(C, pup, NULL); + block = pup->block; } + if (block) { + UI_block_active_only_flagged_buttons(C, CTX_wm_region(C), block); + } return OPERATOR_INTERFACE; } |