diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-12-02 01:30:54 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-12-02 01:39:06 +0300 |
commit | 0efa41e996aaf1f489e6f8f5395de04d98664834 (patch) | |
tree | d9045eed2a8c4a4d8a89b5d63b49358e99c5eaa3 /source/blender/editors/interface/interface_utils.c | |
parent | 44df4242fa5845803ba5786dd867cf4261b09421 (diff) |
Fix rare crash dragging number-buttons
Could happen dragging shape-keys UIList & the lower slider at once.
Diffstat (limited to 'source/blender/editors/interface/interface_utils.c')
-rw-r--r-- | source/blender/editors/interface/interface_utils.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/source/blender/editors/interface/interface_utils.c b/source/blender/editors/interface/interface_utils.c index 854f1763370..6cd5f5a7e05 100644 --- a/source/blender/editors/interface/interface_utils.c +++ b/source/blender/editors/interface/interface_utils.c @@ -390,6 +390,27 @@ void UI_butstore_unregister(uiButStore *bs_handle, uiBut **but_p) } /** + * Update the pointer for a registered button. + */ +bool UI_butstore_register_update(uiBlock *block, uiBut *but_dst, const uiBut *but_src) +{ + uiButStore *bs_handle; + bool found = false; + + for (bs_handle = block->butstore.first; bs_handle; bs_handle = bs_handle->next) { + uiButStoreElem *bs_elem; + for (bs_elem = bs_handle->items.first; bs_elem; bs_elem = bs_elem->next) { + if (*bs_elem->but_p == but_src) { + *bs_elem->but_p = but_dst; + found = true; + } + } + } + + return found; +} + +/** * NULL all pointers, don't free since the owner needs to be able to inspect. */ void UI_butstore_clear(uiBlock *block) |