Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2017-10-28 08:07:56 +0300
committerCampbell Barton <ideasman42@gmail.com>2017-10-30 06:26:57 +0300
commit689ad9ade42fbb03084aaca7e478efddbe891e7f (patch)
treec5838ab57c43d531b9dc0d014f4f63784cb3f214 /source/blender/windowmanager/manipulators/intern/wm_manipulator_group.c
parentca495381c566b31ab8edc387dc7f21e9b5f90a5d (diff)
Fix manipulator drawing before their refresh callback
Caused glitch with Scale-Cage tool.
Diffstat (limited to 'source/blender/windowmanager/manipulators/intern/wm_manipulator_group.c')
-rw-r--r--source/blender/windowmanager/manipulators/intern/wm_manipulator_group.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/source/blender/windowmanager/manipulators/intern/wm_manipulator_group.c b/source/blender/windowmanager/manipulators/intern/wm_manipulator_group.c
index 24786695cba..e0b12289b9e 100644
--- a/source/blender/windowmanager/manipulators/intern/wm_manipulator_group.c
+++ b/source/blender/windowmanager/manipulators/intern/wm_manipulator_group.c
@@ -184,9 +184,16 @@ void wm_manipulatorgroup_ensure_initialized(wmManipulatorGroup *mgroup, const bC
wm_manipulatorgrouptype_setup_keymap(wgt, wm->defaultconf);
BLI_assert(wgt->keymap != NULL);
}
-
mgroup->init_flag |= WM_MANIPULATORGROUP_INIT_SETUP;
}
+
+ /* refresh may be called multiple times, this just ensures its called at least once before we draw. */
+ if (UNLIKELY((mgroup->init_flag & WM_MANIPULATORGROUP_INIT_REFRESH) == 0)) {
+ if (mgroup->type->refresh) {
+ mgroup->type->refresh(C, mgroup);
+ }
+ mgroup->init_flag |= WM_MANIPULATORGROUP_INIT_REFRESH;
+ }
}
bool wm_manipulatorgroup_is_visible(const wmManipulatorGroup *mgroup, const bContext *C)