diff options
Diffstat (limited to 'source/blender/editors/interface/interface_handlers.c')
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index b5aeee3d3bc..d246dfadefa 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -8325,7 +8325,7 @@ void ui_but_active_free(const bContext *C, uiBut *but) } /* returns the active button with an optional checking function */ -static uiBut *ui_context_button_active(ARegion *region, bool (*but_check_cb)(uiBut *)) +static uiBut *ui_context_button_active(const ARegion *region, bool (*but_check_cb)(const uiBut *)) { uiBut *but_found = NULL; @@ -8366,7 +8366,7 @@ static uiBut *ui_context_button_active(ARegion *region, bool (*but_check_cb)(uiB return but_found; } -static bool ui_context_rna_button_active_test(uiBut *but) +static bool ui_context_rna_button_active_test(const uiBut *but) { return (but->rnapoin.data != NULL); } @@ -8391,7 +8391,7 @@ uiBut *UI_context_active_but_get_respect_menu(const bContext *C) return ui_context_button_active(region_menu ? region_menu : CTX_wm_region(C), NULL); } -uiBut *UI_region_active_but_get(ARegion *region) +uiBut *UI_region_active_but_get(const ARegion *region) { return ui_context_button_active(region, NULL); } @@ -8489,6 +8489,15 @@ wmOperator *UI_context_active_operator_get(const struct bContext *C) return NULL; } +/** + * Try to find a search-box region opened from a button in \a button_region. + */ +ARegion *UI_region_searchbox_region_get(const ARegion *button_region) +{ + uiBut *but = UI_region_active_but_get(button_region); + return (but != NULL) ? but->active->searchbox : NULL; +} + /* helper function for insert keyframe, reset to default, etc operators */ void UI_context_update_anim_flag(const bContext *C) { |