From 3bfec4e31c20c9c4c050bbc7234d5ada956b444f Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 7 Jan 2010 21:52:04 +0000 Subject: [PATCH] Add ability to cancel/revert dragging on color picker widgets with Escape, same as other widgets --- .../editors/interface/interface_handlers.c | 18 ++++++++++++++---- 1 file 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; }