Most likely, yes. Change UICamera.IsVisible to this:
static bool IsVisible (ref RaycastHit hit) { UIPanel panel = NGUITools.FindInParents<UIPanel>(hit.collider.gameObject); while (panel != null) { if (!panel.IsVisible(hit.point)) return false; panel = panel.parentPanel; } return true; }