diff --git a/Source/Editor/Gizmo/UIEditorGizmo.cs b/Source/Editor/Gizmo/UIEditorGizmo.cs
index aba177b7d..0b8994577 100644
--- a/Source/Editor/Gizmo/UIEditorGizmo.cs
+++ b/Source/Editor/Gizmo/UIEditorGizmo.cs
@@ -714,16 +714,15 @@ namespace FlaxEditor
private bool RayCastControl(ref Float2 location, out Control hit)
{
-#if false
- // Raycast only controls with content (eg. skips transparent panels)
- return RayCastChildren(ref location, out hit);
-#else
- // Find any control under mouse (hierarchical)
- hit = GetChildAtRecursive(location);
+ // First, raycast only controls with content (eg. skips transparent panels)
+ RayCastChildren(ref location, out hit);
+
+ // If raycast failed, then find any control under mouse (hierarchical)
+ hit = hit ?? GetChildAtRecursive(location);
if (hit is View || hit is CanvasContainer)
hit = null;
+
return hit != null;
-#endif
}
private UIControlNode FindUIControlNode(Control control)
diff --git a/Source/Engine/UI/GUI/ContainerControl.cs b/Source/Engine/UI/GUI/ContainerControl.cs
index 530663761..62373f2f6 100644
--- a/Source/Engine/UI/GUI/ContainerControl.cs
+++ b/Source/Engine/UI/GUI/ContainerControl.cs
@@ -858,6 +858,14 @@ namespace FlaxEngine.GUI
}
}
+ ///
+ public override bool ContainsPoint(ref Float2 location, bool precise = false)
+ {
+ if (precise && this.GetType() == typeof(ContainerControl) && BackgroundColor.A <= 0.0f) // Go through transparency
+ return false;
+ return base.ContainsPoint(ref location, precise);
+ }
+
///
public override void PerformLayout(bool force = false)
{