Bugfix: clicking outside of color picker could reset color in some cases.

This commit is contained in:
Brecht Van Lommel 2009-12-14 14:34:57 +00:00
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;