diff options
author | Julian Eisel <julian@blender.org> | 2021-09-15 23:34:20 +0300 |
---|---|---|
committer | Julian Eisel <julian@blender.org> | 2021-09-15 23:34:20 +0300 |
commit | da9be470b546928e3e4320003b333d0aad1c9073 (patch) | |
tree | 3879b762dc226f0b6a55d8e5bdafcfba7dc0c3b9 /source/blender/windowmanager/gizmo/intern | |
parent | ad7588600c35423b2908756afd694331f08aeb20 (diff) | |
parent | 28bd74c18650a8362bc791df602097967ff5efdf (diff) |
Merge branch 'master' into temp-cocoa-scroll-acceleration-fixtemp-cocoa-scroll-acceleration-fix
Diffstat (limited to 'source/blender/windowmanager/gizmo/intern')
-rw-r--r-- | source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c b/source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c index 1144cd072e0..295196c701b 100644 --- a/source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c +++ b/source/blender/windowmanager/gizmo/intern/wm_gizmo_map.c @@ -387,14 +387,21 @@ static void gizmomap_prepare_drawing(wmGizmoMap *gzmap, LISTBASE_FOREACH (wmGizmoGroup *, gzgroup, &gzmap->groups) { /* check group visibility - drawstep first to avoid unnecessary call of group poll callback */ - if (!wm_gizmogroup_is_visible_in_drawstep(gzgroup, drawstep) || - !WM_gizmo_group_type_poll(C, gzgroup->type)) { + if (!wm_gizmogroup_is_visible_in_drawstep(gzgroup, drawstep)) { continue; } - /* When modal only show other gizmo groups tagged with #WM_GIZMOGROUPTYPE_DRAW_MODAL_ALL. */ - if (gz_modal && (gzgroup != gz_modal->parent_gzgroup)) { - if ((gzgroup->type->flag & WM_GIZMOGROUPTYPE_DRAW_MODAL_ALL) == 0) { + if (gz_modal && (gzgroup == gz_modal->parent_gzgroup)) { + if (gzgroup->type->flag & WM_GIZMOGROUPTYPE_DRAW_MODAL_EXCLUDE) { + continue; + } + } + else { /* Don't poll modal gizmo since some poll functions unlink. */ + if (!WM_gizmo_group_type_poll(C, gzgroup->type)) { + continue; + } + /* When modal only show other gizmo groups tagged with #WM_GIZMOGROUPTYPE_DRAW_MODAL_ALL. */ + if (gz_modal && ((gzgroup->type->flag & WM_GIZMOGROUPTYPE_DRAW_MODAL_ALL) == 0)) { continue; } } |