Fix #33423: a few operators still allowed changing current frame during
animation render, like cursor set in the graph editor, disabled that now.
This commit is contained in:
@@ -52,6 +52,7 @@
|
||||
|
||||
#include "BKE_action.h"
|
||||
#include "BKE_fcurve.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_nla.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_report.h"
|
||||
@@ -1308,6 +1309,15 @@ void ACTION_OT_keyframe_type(wmOperatorType *ot)
|
||||
|
||||
/* ***************** Jump to Selected Frames Operator *********************** */
|
||||
|
||||
static int actkeys_framejump_poll(bContext *C)
|
||||
{
|
||||
/* prevent changes during render */
|
||||
if (G.is_rendering)
|
||||
return 0;
|
||||
|
||||
return ED_operator_action_active(C);
|
||||
}
|
||||
|
||||
/* snap current-frame indicator to 'average time' of selected keyframe */
|
||||
static int actkeys_framejump_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
@@ -1361,7 +1371,7 @@ void ACTION_OT_frame_jump(wmOperatorType *ot)
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec = actkeys_framejump_exec;
|
||||
ot->poll = ED_operator_action_active;
|
||||
ot->poll = actkeys_framejump_poll;
|
||||
|
||||
/* flags */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
|
||||
@@ -56,6 +56,7 @@
|
||||
#include "BLF_translation.h"
|
||||
|
||||
#include "BKE_fcurve.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_nla.h"
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_report.h"
|
||||
@@ -1763,6 +1764,15 @@ void GRAPH_OT_euler_filter(wmOperatorType *ot)
|
||||
|
||||
/* ***************** Jump to Selected Frames Operator *********************** */
|
||||
|
||||
static int graphkeys_framejump_poll(bContext *C)
|
||||
{
|
||||
/* prevent changes during render */
|
||||
if (G.is_rendering)
|
||||
return 0;
|
||||
|
||||
return graphop_visible_keyframes_poll(C);
|
||||
}
|
||||
|
||||
/* snap current-frame indicator to 'average time' of selected keyframe */
|
||||
static int graphkeys_framejump_exec(bContext *C, wmOperator *UNUSED(op))
|
||||
{
|
||||
@@ -1829,7 +1839,7 @@ void GRAPH_OT_frame_jump(wmOperatorType *ot)
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec = graphkeys_framejump_exec;
|
||||
ot->poll = graphop_visible_keyframes_poll;
|
||||
ot->poll = graphkeys_framejump_poll;
|
||||
|
||||
/* flags */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#include "BLI_utildefines.h"
|
||||
|
||||
#include "BKE_context.h"
|
||||
#include "BKE_global.h"
|
||||
#include "BKE_main.h"
|
||||
#include "BKE_sound.h"
|
||||
|
||||
@@ -66,6 +67,15 @@
|
||||
* 2) Value Indicator (stored per Graph Editor instance)
|
||||
*/
|
||||
|
||||
static int graphview_cursor_poll(bContext *C)
|
||||
{
|
||||
/* prevent changes during render */
|
||||
if (G.is_rendering)
|
||||
return 0;
|
||||
|
||||
return ED_operator_graphedit_active(C);
|
||||
}
|
||||
|
||||
/* Set the new frame number */
|
||||
static void graphview_cursor_apply(bContext *C, wmOperator *op)
|
||||
{
|
||||
@@ -172,7 +182,7 @@ static void GRAPH_OT_cursor_set(wmOperatorType *ot)
|
||||
ot->exec = graphview_cursor_exec;
|
||||
ot->invoke = graphview_cursor_invoke;
|
||||
ot->modal = graphview_cursor_modal;
|
||||
ot->poll = ED_operator_graphedit_active;
|
||||
ot->poll = graphview_cursor_poll;
|
||||
|
||||
/* flags */
|
||||
ot->flag = OPTYPE_BLOCKING | OPTYPE_UNDO;
|
||||
|
||||
@@ -2405,6 +2405,15 @@ static int strip_jump_internal(Scene *scene,
|
||||
return change;
|
||||
}
|
||||
|
||||
static int sequencer_strip_jump_poll(bContext *C)
|
||||
{
|
||||
/* prevent changes during render */
|
||||
if (G.is_rendering)
|
||||
return 0;
|
||||
|
||||
return sequencer_edit_poll(C);
|
||||
}
|
||||
|
||||
/* jump frame to edit point operator */
|
||||
static int sequencer_strip_jump_exec(bContext *C, wmOperator *op)
|
||||
{
|
||||
@@ -2431,7 +2440,7 @@ void SEQUENCER_OT_strip_jump(wmOperatorType *ot)
|
||||
|
||||
/* api callbacks */
|
||||
ot->exec = sequencer_strip_jump_exec;
|
||||
ot->poll = sequencer_edit_poll;
|
||||
ot->poll = sequencer_strip_jump_poll;
|
||||
|
||||
/* flags */
|
||||
ot->flag = OPTYPE_REGISTER | OPTYPE_UNDO;
|
||||
|
||||
Reference in New Issue
Block a user