Thanks for the quick reply!
I just tested the UIPanel.IsVisible(widget) method and it works as long as the panel is clipped. If the panel is None or Constrain But Don't Clip, it will report visible no matter what.
Wouldn't be a good idea if Constrain But Don't Clip reported false when the widget is fully outside?
Edit:
By the way, the UIPanel.IsVisible(a, b, c, d) works perfectly.