diff options
author | Matt Ebb <matt@mke3.net> | 2010-01-08 00:52:04 +0300 |
---|---|---|
committer | Matt Ebb <matt@mke3.net> | 2010-01-08 00:52:04 +0300 |
commit | 3bfec4e31c20c9c4c050bbc7234d5ada956b444f (patch) | |
tree | e1c11984651993962d80c343095129e7360220db /source/blender/editors | |
parent | 00a099e44ec5a33ed3c9b9f86810c98c0e2a781b (diff) |
Add ability to cancel/revert dragging on color picker widgets with Escape, same as other widgets
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/interface/interface_handlers.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 4c40f37e195..597f5a9d8cd 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -2765,7 +2765,12 @@ static int ui_do_but_HSVCUBE(bContext *C, uiBlock *block, uiBut *but, uiHandleBu } } else if(data->state == BUTTON_STATE_NUM_EDITING) { - if(event->type == MOUSEMOVE) { + if(event->type == ESCKEY) { + data->cancel= 1; + data->escapecancel= 1; + button_activate_state(C, but, BUTTON_STATE_EXIT); + } + else if(event->type == MOUSEMOVE) { if(mx!=data->draglastx || my!=data->draglasty) { if(ui_numedit_but_HSVCUBE(but, data, mx, my)) ui_numedit_apply(C, block, but, data); @@ -2828,8 +2833,13 @@ static int ui_do_but_HSVCIRCLE(bContext *C, uiBlock *block, uiBut *but, uiHandle } } else if(data->state == BUTTON_STATE_NUM_EDITING) { + if(event->type == ESCKEY) { + data->cancel= 1; + data->escapecancel= 1; + button_activate_state(C, but, BUTTON_STATE_EXIT); + } /* XXX hardcoded keymap check.... */ - if(event->type == WHEELDOWNMOUSE) { + else if(event->type == WHEELDOWNMOUSE) { but->hsv[2]= CLAMPIS(but->hsv[2]-0.05f, 0.0f, 1.0f); ui_set_but_hsv(but); // converts to rgb ui_numedit_apply(C, block, but, data); @@ -2845,9 +2855,9 @@ static int ui_do_but_HSVCIRCLE(bContext *C, uiBlock *block, uiBut *but, uiHandle ui_numedit_apply(C, block, but, data); } } - else if(event->type==LEFTMOUSE && event->val!=KM_PRESS) + else if(event->type==LEFTMOUSE && event->val!=KM_PRESS) { button_activate_state(C, but, BUTTON_STATE_EXIT); - + } return WM_UI_HANDLER_BREAK; } |