[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [23750] trunk/blender/source/blender/ editors/screen/screen_ops.c: Animation playback can now also be cancelled with ESC key.
Brecht Van Lommel
brecht at blender.org
Fri Oct 9 23:50:33 CEST 2009
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);
}
More information about the Bf-blender-cvs
mailing list