diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-08-15 15:31:04 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-08-15 15:31:04 +0400 |
commit | 60915c90995e2ce12216cc70eb1365de03d3f423 (patch) | |
tree | 7581b0557b03b7b3e7d687c881d121a47d704b69 /source | |
parent | e2cffbe732fde055c0a3d619126dde0589c958b6 (diff) |
escape key now quits composite.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/editors/space_node/node_edit.c | 15 | ||||
-rw-r--r-- | source/blender/windowmanager/wm_event_types.h | 18 |
2 files changed, 25 insertions, 8 deletions
diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index d34c5f16afa..e4fc19fbd08 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -40,6 +40,7 @@ #include "BLI_math.h" #include "BLI_blenlib.h" +#include "BKE_blender.h" #include "BKE_context.h" #include "BKE_depsgraph.h" #include "BKE_global.h" @@ -72,6 +73,8 @@ #include "node_intern.h" /* own include */ +#define USE_ESC_COMPO + /* ***************** composite job manager ********************** */ typedef struct CompoJob { @@ -88,7 +91,13 @@ static int compo_breakjob(void *cjv) { CompoJob *cj = cjv; - return *(cj->stop); + /* without G.is_break 'ESC' wont quit - which annoys users */ + return (*(cj->stop) +#ifdef USE_ESC_COMPO + || + G.is_break +#endif + ); } /* called by compo, wmJob sends notifier */ @@ -181,6 +190,10 @@ void ED_node_composite_job(const bContext *C, struct bNodeTree *nodetree, Scene return; } +#ifdef USE_ESC_COMPO + G.is_break = FALSE; +#endif + wm_job = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), scene_owner, "Compositing", WM_JOB_EXCL_RENDER | WM_JOB_PROGRESS, WM_JOB_TYPE_COMPOSITE); cj = MEM_callocN(sizeof(CompoJob), "compo job"); diff --git a/source/blender/windowmanager/wm_event_types.h b/source/blender/windowmanager/wm_event_types.h index 30f6c564688..95a8a7db635 100644 --- a/source/blender/windowmanager/wm_event_types.h +++ b/source/blender/windowmanager/wm_event_types.h @@ -285,25 +285,29 @@ enum { /* for event checks */ /* only used for KM_TEXTINPUT, so assume that we want all user-inputtable ascii codes included */ -#define ISTEXTINPUT(event) (event >=' ' && event <=255) +#define ISTEXTINPUT(event) (event >= ' ' && event <= 255) /* test whether the event is a key on the keyboard */ -#define ISKEYBOARD(event) (event >=' ' && event <=320) +#define ISKEYBOARD(event) (event >= ' ' && event <= 320) /* test whether the event is a modifier key */ -#define ISKEYMODIFIER(event) ((event >= LEFTCTRLKEY && event <= LEFTSHIFTKEY) || event == OSKEY) +#define ISKEYMODIFIER(event) ((event >= LEFTCTRLKEY && event <= LEFTSHIFTKEY) || event == OSKEY) /* test whether the event is a mouse button */ -#define ISMOUSE(event) (event >= LEFTMOUSE && event <= MOUSEROTATE) +#define ISMOUSE(event) (event >= LEFTMOUSE && event <= MOUSEROTATE) /* test whether the event is tweak event */ -#define ISTWEAK(event) (event >= EVT_TWEAK_L && event <= EVT_GESTURE) +#define ISTWEAK(event) (event >= EVT_TWEAK_L && event <= EVT_GESTURE) /* test whether the event is a NDOF event */ -#define ISNDOF(event) (event >= NDOF_MOTION && event < NDOF_LAST) +#define ISNDOF(event) (event >= NDOF_MOTION && event < NDOF_LAST) /* test whether event type is acceptable as hotkey, excluding modifiers */ -#define ISHOTKEY(event) ((ISKEYBOARD(event) || ISMOUSE(event) || ISNDOF(event)) && event!=ESCKEY && !(event>=LEFTCTRLKEY && event<=LEFTSHIFTKEY) && !(event>=UNKNOWNKEY && event<=GRLESSKEY)) +#define ISHOTKEY(event) \ + ((ISKEYBOARD(event) || ISMOUSE(event) || ISNDOF(event)) && \ + (event != ESCKEY) && \ + (event >= LEFTCTRLKEY && event <= LEFTSHIFTKEY) == FALSE && \ + (event >= UNKNOWNKEY && event <= GRLESSKEY) == FALSE) /* **************** BLENDER GESTURE EVENTS (0x5000) **************** */ |