Revision: 23750 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=23750 Author: blendix Date: 2009-10-09 23:50:33 +0200 (Fri, 09 Oct 2009)
Log Message: ----------- Animation playback can now also be cancelled with ESC key. Modified Paths: -------------- trunk/blender/source/blender/editors/screen/screen_ops.c Modified: trunk/blender/source/blender/editors/screen/screen_ops.c =================================================================== --- trunk/blender/source/blender/editors/screen/screen_ops.c 2009-10-09 21:45:14 UTC (rev 23749) +++ trunk/blender/source/blender/editors/screen/screen_ops.c 2009-10-09 21:50:33 UTC (rev 23750) @@ -2384,6 +2384,29 @@ RNA_def_boolean(ot->srna, "sync", 0, "Sync", "Drop frames to maintain framerate and stay in sync with audio."); } +static int screen_animation_cancel(bContext *C, wmOperator *op, wmEvent *event) +{ + bScreen *screen= CTX_wm_screen(C); + + if(screen->animtimer) + return screen_animation_play(C, op, event); + + return OPERATOR_PASS_THROUGH; +} + +static void SCREEN_OT_animation_cancel(wmOperatorType *ot) +{ + /* identifiers */ + ot->name= "Cancel Animation"; + ot->description= "Cancel animation."; + ot->idname= "SCREEN_OT_animation_cancel"; + + /* api callbacks */ + ot->invoke= screen_animation_cancel; + + ot->poll= ED_operator_screenactive; +} + /* ************** border select operator (template) ***************************** */ /* operator state vars used: (added by default WM callbacks) @@ -2994,6 +3017,7 @@ /* test if we have a temp screen in front */ if(CTX_wm_window(C)->screen->full==SCREENTEMP) { wm_window_lower(CTX_wm_window(C)); + return OPERATOR_FINISHED; } /* determine if render already shows */ else if(sima->flag & SI_PREVSPACE) { @@ -3005,13 +3029,16 @@ } else ED_area_prevspace(C); + + return OPERATOR_FINISHED; } else if(sima->flag & SI_FULLWINDOW) { sima->flag &= ~SI_FULLWINDOW; ed_screen_fullarea(C, sa); - } - - return OPERATOR_FINISHED; + return OPERATOR_FINISHED; + } + + return OPERATOR_PASS_THROUGH; } static void SCREEN_OT_render_view_cancel(struct wmOperatorType *ot) @@ -3268,6 +3295,7 @@ WM_operatortype_append(SCREEN_OT_animation_step); WM_operatortype_append(SCREEN_OT_animation_play); + WM_operatortype_append(SCREEN_OT_animation_cancel); /* render */ WM_operatortype_append(SCREEN_OT_render); @@ -3408,6 +3436,7 @@ WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", AKEY, KM_PRESS, KM_ALT, 0); WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", KKEY, KM_PRESS, 0, LKEY); RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", AKEY, KM_PRESS, KM_ALT|KM_SHIFT, 0)->ptr, "reverse", 1); + WM_keymap_add_item(keymap, "SCREEN_OT_animation_cancel", ESCKEY, KM_PRESS, 0, 0); keymap_modal_set(keyconf); } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs