I suggest modifying the UICamera's Raycast function then. You will want to RaycastAll instead, and for each hit, GetComponent<UIWidget>(), see if its panel is clipped, and if it is -- check -- is the point within view? If yes, it's a valid event. If not, skip it and move on to the next hit.