From cefe001793310caebe32fd4274dd2fc4a9582cb4 Mon Sep 17 00:00:00 2001 From: Philipp Oeser Date: Fri, 24 Mar 2023 11:36:49 +0100 Subject: [PATCH] Fix #106043 : Moving frame node jittering while cursor is still The fix for #105363 (6d3ce8273a) made the transform system respect (Frame) nodes `offsetx`/`offsety`. Due to the way `frame_node_prepare_for_draw` recalculates these on every redraw (based on updated positions), this can lead to slight imprecisions/noise/jitter during transform. Suggest to round the offsets in the transform system to work around the problem. --- .../transform/transform_convert_node.cc | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/source/blender/editors/transform/transform_convert_node.cc b/source/blender/editors/transform/transform_convert_node.cc index 8e14b900394..65ad2579af9 100644 --- a/source/blender/editors/transform/transform_convert_node.cc +++ b/source/blender/editors/transform/transform_convert_node.cc @@ -48,11 +48,15 @@ static void create_transform_data_for_node(TransData &td, /* account for parents (nested nodes) */ if (node.parent) { - nodeToView(node.parent, node.locx + node.offsetx, node.locy + node.offsety, &locx, &locy); + nodeToView(node.parent, + node.locx + roundf(node.offsetx), + node.locy + roundf(node.offsety), + &locx, + &locy); } else { - locx = node.locx + node.offsetx; - locy = node.locy + node.offsety; + locx = node.locx + roundf(node.offsetx); + locy = node.locy + roundf(node.offsety); } /* use top-left corner as the transform origin for nodes */ @@ -245,14 +249,14 @@ static void flushTransNodes(TransInfo *t) /* account for parents (nested nodes) */ if (node->parent) { nodeFromView(node->parent, - loc[0] - node->offsetx, - loc[1] - node->offsety, + loc[0] - roundf(node->offsetx), + loc[1] - roundf(node->offsety), &node->locx, &node->locy); } else { - node->locx = loc[0] - node->offsetx; - node->locy = loc[1] - node->offsety; + node->locx = loc[0] - roundf(node->offsetx); + node->locy = loc[1] - roundf(node->offsety); } } -- 2.30.2