diff options
author | Ton Roosendaal <ton@blender.org> | 2009-06-12 19:11:51 +0400 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2009-06-12 19:11:51 +0400 |
commit | 63abf1ec6cf2ac57af09af8c3334403ff8160479 (patch) | |
tree | 7182db0ff60a600fefebaeb675ebd9e9cbd70e1a /source/blender | |
parent | 7910d458076ea1605c8ef581e2f037be3684979a (diff) |
2.5
Fix for new picker: mouse move out of menu was handled as
restore... added new block flag UI_BLOCK_OUT_1 to denote
it shouldn't.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/include/UI_interface.h | 1 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 8 | ||||
-rw-r--r-- | source/blender/editors/interface/interface_regions.c | 2 |
3 files changed, 8 insertions, 3 deletions
diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index dea408f818a..48a859dadc4 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -91,6 +91,7 @@ typedef struct uiLayout uiLayout; #define UI_BLOCK_MOVEMOUSE_QUIT 128 #define UI_BLOCK_KEEP_OPEN 256 #define UI_BLOCK_POPUP 512 +#define UI_BLOCK_OUT_1 1024 /* uiPopupBlockHandle->menuretval */ #define UI_RETURN_CANCEL 1 /* cancel all menus cascading */ diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index bda16584811..0f6dbc430fb 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -3812,8 +3812,12 @@ int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu, } /* strict check, and include the parent rect */ - if(!menu->dotowards && !saferct) - menu->menuretval= (block->flag & UI_BLOCK_KEEP_OPEN)? UI_RETURN_OK: UI_RETURN_OUT; + if(!menu->dotowards && !saferct) { + if(block->flag & UI_BLOCK_OUT_1) + menu->menuretval= UI_RETURN_OK; + else + menu->menuretval= (block->flag & UI_BLOCK_KEEP_OPEN)? UI_RETURN_OK: UI_RETURN_OUT; + } else if(menu->dotowards && event->type==MOUSEMOVE) retval= WM_UI_HANDLER_BREAK; } diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index 89654f0ffab..7ccb6c5163b 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -1792,7 +1792,7 @@ uiBlock *ui_block_func_COL(bContext *C, uiPopupBlockHandle *handle, void *arg_bu } else { uiBlockPickerSmall(block, handle->retvec, hsvcol, oldcol, hexcol, 'p', 0); - block->flag= UI_BLOCK_LOOP|UI_BLOCK_REDRAW|UI_BLOCK_RET_1; + block->flag= UI_BLOCK_LOOP|UI_BLOCK_REDRAW|UI_BLOCK_RET_1|UI_BLOCK_OUT_1; uiBoundsBlock(block, 10); block->block_event_func= ui_picker_small_wheel; |