blender-v3.6-release backports #112708
@ -731,13 +731,13 @@ static GeometrySet curve_calc_modifiers_post(Depsgraph *depsgraph,
|
||||
continue;
|
||||
}
|
||||
|
||||
blender::bke::ScopedModifierTimer modifier_timer{*md};
|
||||
|
||||
if (md->type == eModifierType_Nodes) {
|
||||
mti->modifyGeometrySet(md, &mectx_apply, &geometry_set);
|
||||
continue;
|
||||
}
|
||||
|
||||
blender::bke::ScopedModifierTimer modifier_timer{*md};
|
||||
|
||||
if (!geometry_set.has_mesh()) {
|
||||
geometry_set.replace_mesh(BKE_mesh_new_nomain(0, 0, 0, 0));
|
||||
}
|
||||
|
@ -46,6 +46,7 @@
|
||||
#include "ED_transform_snap_object_context.h"
|
||||
#include "ED_undo.h"
|
||||
#include "ED_view3d.h"
|
||||
#include "ED_outliner.h"
|
||||
|
||||
#include "WM_toolsystem.h"
|
||||
|
||||
@ -475,6 +476,8 @@ static bool object_transfer_mode_to_base(bContext *C, wmOperator *op, Base *base
|
||||
}
|
||||
|
||||
WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene);
|
||||
ED_outliner_select_sync_from_object_tag(C);
|
||||
|
||||
WM_toolsystem_update_from_context_view3d(C);
|
||||
mode_transferred = true;
|
||||
}
|
||||
|
@ -3183,7 +3183,7 @@ static int keyframe_jump_exec(bContext *C, wmOperator *op)
|
||||
static bool keyframe_jump_poll(bContext *C)
|
||||
{
|
||||
/* There is a keyframe jump operator specifically for the Graph Editor. */
|
||||
return ED_operator_screenactive_norender(C) && ED_operator_graphedit_active(C);
|
||||
return ED_operator_screenactive_norender(C) && !ED_operator_graphedit_active(C);
|
||||
}
|
||||
|
||||
static void SCREEN_OT_keyframe_jump(wmOperatorType *ot)
|
||||
|
@ -216,12 +216,12 @@ bool python_script_error_jump(
|
||||
else {
|
||||
PyErr_NormalizeException(&exception, &value, (PyObject **)&tb);
|
||||
|
||||
for (tb = (PyTracebackObject *)PySys_GetObject("last_traceback");
|
||||
tb && (PyObject *)tb != Py_None;
|
||||
tb = tb->tb_next)
|
||||
for (PyTracebackObject *tb_iter = (PyTracebackObject *)PySys_GetObject("last_traceback");
|
||||
tb_iter && (PyObject *)tb_iter != Py_None;
|
||||
tb_iter = tb_iter->tb_next)
|
||||
{
|
||||
PyObject *coerce;
|
||||
const char *tb_filepath = traceback_filepath(tb, &coerce);
|
||||
const char *tb_filepath = traceback_filepath(tb_iter, &coerce);
|
||||
const int match = ((BLI_path_cmp(tb_filepath, filepath) == 0) ||
|
||||
(ELEM(tb_filepath[0], '\\', '/') &&
|
||||
BLI_path_cmp(tb_filepath + 1, filepath) == 0));
|
||||
@ -229,7 +229,7 @@ bool python_script_error_jump(
|
||||
|
||||
if (match) {
|
||||
success = true;
|
||||
*r_lineno = *r_lineno_end = tb->tb_lineno;
|
||||
*r_lineno = *r_lineno_end = tb_iter->tb_lineno;
|
||||
/* used to break here, but better find the inner most line */
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user