diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-07-01 06:51:13 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-07-01 06:51:13 +0300 |
commit | fc10a5cf9e008343ecb925fdb87a4faa18918359 (patch) | |
tree | 7d96773f75f66a5203391b64cf32c4073b975deb /source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c | |
parent | 1a5e1273c1cb220daa9ce68a200cbae412d19321 (diff) |
Fix T66229: gizmos overlap when switching modes
Diffstat (limited to 'source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c')
-rw-r--r-- | source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c b/source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c index 40d99ce8ba6..50c98630a16 100644 --- a/source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c +++ b/source/blender/windowmanager/gizmo/intern/wm_gizmo_group.c @@ -927,6 +927,15 @@ wmGizmoGroup *WM_gizmomaptype_group_init_runtime_with_region(wmGizmoMapType *gzm wmGizmoGroup *gzgroup = wm_gizmogroup_new_from_type(gzmap, gzgt); + /* Don't allow duplicates when switching modes for e.g. see: T66229. */ + LISTBASE_FOREACH (wmGizmoGroup *, gzgroup_iter, &gzmap->groups) { + if (gzgroup_iter->type == gzgt) { + if (gzgroup_iter != gzgroup) { + WM_gizmo_group_tag_remove(gzgroup_iter); + } + } + } + wm_gizmomap_highlight_set(gzmap, NULL, NULL, 0); ED_region_tag_redraw(ar); |