forked from bartvdbraak/blender
Bugfix: clicking outside of color picker could reset color in some cases.
This commit is contained in:
parent
a5c020218c
commit
91215df5c2
@ -4739,10 +4739,15 @@ int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu,
|
|||||||
if(inside==0) {
|
if(inside==0) {
|
||||||
uiSafetyRct *saferct= block->saferct.first;
|
uiSafetyRct *saferct= block->saferct.first;
|
||||||
|
|
||||||
if(ELEM3(event->type, LEFTMOUSE, MIDDLEMOUSE, RIGHTMOUSE) && event->val==KM_PRESS)
|
if(ELEM3(event->type, LEFTMOUSE, MIDDLEMOUSE, RIGHTMOUSE) && event->val==KM_PRESS) {
|
||||||
if(saferct && !BLI_in_rctf(&saferct->parent, event->x, event->y))
|
if(saferct && !BLI_in_rctf(&saferct->parent, event->x, event->y)) {
|
||||||
|
if(block->flag & (UI_BLOCK_OUT_1|UI_BLOCK_KEEP_OPEN))
|
||||||
|
menu->menuretval= UI_RETURN_OK;
|
||||||
|
else
|
||||||
menu->menuretval= UI_RETURN_OUT;
|
menu->menuretval= UI_RETURN_OUT;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if(menu->menuretval);
|
if(menu->menuretval);
|
||||||
else if(event->type==ESCKEY && event->val==KM_PRESS) {
|
else if(event->type==ESCKEY && event->val==KM_PRESS) {
|
||||||
@ -4777,10 +4782,10 @@ int ui_handle_menu_event(bContext *C, wmEvent *event, uiPopupBlockHandle *menu,
|
|||||||
|
|
||||||
/* strict check, and include the parent rect */
|
/* strict check, and include the parent rect */
|
||||||
if(!menu->dotowards && !saferct) {
|
if(!menu->dotowards && !saferct) {
|
||||||
if(block->flag & UI_BLOCK_OUT_1)
|
if(block->flag & (UI_BLOCK_OUT_1|UI_BLOCK_KEEP_OPEN))
|
||||||
menu->menuretval= UI_RETURN_OK;
|
menu->menuretval= UI_RETURN_OK;
|
||||||
else
|
else
|
||||||
menu->menuretval= (block->flag & UI_BLOCK_KEEP_OPEN)? UI_RETURN_OK: UI_RETURN_OUT;
|
menu->menuretval= UI_RETURN_OUT;
|
||||||
}
|
}
|
||||||
else if(menu->dotowards && event->type==MOUSEMOVE)
|
else if(menu->dotowards && event->type==MOUSEMOVE)
|
||||||
retval= WM_UI_HANDLER_BREAK;
|
retval= WM_UI_HANDLER_BREAK;
|
||||||
|
Loading…
Reference in New Issue
Block a user