From 411b5f3b100ee385b68c888c278745926357626a Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Wed, 24 Apr 2019 06:57:36 +1000 Subject: 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 --- source/blender/editors/screen/area_query.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'source') 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; + } } } } -- cgit v1.2.3