[Bf-blender-cvs] [411b5f3b100] master: Fix T63822: Sidebar tabs active area dead-zone

Campbell Barton noreply at git.blender.org
Tue Apr 23 23:02:04 CEST 2019


Commit: 411b5f3b100ee385b68c888c278745926357626a
Author: Campbell Barton
Date:   Wed Apr 24 06:57:36 2019 +1000
Branches: master
https://developer.blender.org/rB411b5f3b100ee385b68c888c278745926357626a

Fix T63822: Sidebar tabs active area dead-zone

Clip on one axis for aligned regions to avoid tabs being clipped out.

Introduced in recent fix for T61554

===================================================================

M	source/blender/editors/screen/area_query.c

===================================================================

diff --git a/source/blender/editors/screen/area_query.c b/source/blender/editors/screen/area_query.c
index a4bcf622815..4d33567316f 100644
--- a/source/blender/editors/screen/area_query.c
+++ b/source/blender/editors/screen/area_query.c
@@ -112,8 +112,23 @@ bool ED_region_contains_xy(const ARegion *ar, const int event_xy[2])
       }
       else {
         /* Side-bar & any other kind of overlapping region. */
-        if (!ED_region_overlap_isect_xy_with_margin(ar, event_xy, overlap_margin)) {
-          return false;
+
+        /* Check alignment to avoid region tabs being clipped out
+         * by only clipping a single axis for aligned regions. */
+        if (ELEM(ar->alignment, RGN_ALIGN_TOP, RGN_ALIGN_BOTTOM)) {
+          if (!ED_region_overlap_isect_x_with_margin(ar, event_xy[0], overlap_margin)) {
+            return false;
+          }
+        }
+        else if (ELEM(ar->alignment, RGN_ALIGN_LEFT, RGN_ALIGN_RIGHT)) {
+          if (!ED_region_overlap_isect_y_with_margin(ar, event_xy[1], overlap_margin)) {
+            return false;
+          }
+        }
+        else {
+          if (!ED_region_overlap_isect_xy_with_margin(ar, event_xy, overlap_margin)) {
+            return false;
+          }
         }
       }
     }



More information about the Bf-blender-cvs mailing list