From aec8cff9ab730fdf525242ffbf1f4dcfd67c2bb1 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 25 Jul 2013 08:36:35 +0000 Subject: [PATCH] optimization: manipulator was looping over all objects on redraw when the active object was being used and it didn't need to. --- .../editors/transform/transform_orientations.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/source/blender/editors/transform/transform_orientations.c b/source/blender/editors/transform/transform_orientations.c index c6cc7bc1330..47a63bdb063 100644 --- a/source/blender/editors/transform/transform_orientations.c +++ b/source/blender/editors/transform/transform_orientations.c @@ -880,11 +880,14 @@ int getTransformOrientation(const bContext *C, float normal[3], float plane[3], else { /* we need the one selected object, if its not active */ ob = OBACT; - if (ob && !(ob->flag & SELECT)) ob = NULL; - - for (base = scene->base.first; base; base = base->next) { - if (TESTBASELIB(v3d, base)) { - if (ob == NULL) { + if (ob && (ob->flag & SELECT)) { + /* pass */ + } + else { + /* first selected */ + ob = NULL; + for (base = scene->base.first; base; base = base->next) { + if (TESTBASELIB(v3d, base)) { ob = base->object; break; }