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:
authorJulian Eisel <julian@blender.org>2021-09-15 23:34:20 +0300
committerJulian Eisel <julian@blender.org>2021-09-15 23:34:20 +0300
commitda9be470b546928e3e4320003b333d0aad1c9073 (patch)
tree3879b762dc226f0b6a55d8e5bdafcfba7dc0c3b9 /source/blender/windowmanager/gizmo/intern
parentad7588600c35423b2908756afd694331f08aeb20 (diff)
parent28bd74c18650a8362bc791df602097967ff5efdf (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.c17
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;
}
}