[Android][WebBrowser] Hiding WebBrowser widget leaves stale View in ExtraIgnoreClickViews, permanently blocking viewport touches

Summary

[Android][WebBrowser] Hiding WebBrowser widget leaves stale View in ExtraIgnoreClickViews, permanently blocking viewport touches

What Type of Bug are you experiencing?

UI / Tools

Steps to Reproduce

  1. Create a Widget Blueprint containing a WebBrowser widget (e.g., wrapped in an Overlay or Canvas Panel).
  2. Package and run the project on an Android device.
  3. Add the widget to the viewport and set its visibility to Visible. Load any URL (e.g., “https://www.google.com”).
  4. Verify that touching the WebBrowser interacts with the web page normally.
  5. Hide the widget by setting its visibility (or its parent container) to Hidden or Collapsed in Blueprint (do not call RemoveFromParent or destroy the widget, keeping it cached for re-use).
  6. Attempt to touch, swipe, or drag within the rectangular screen area formerly occupied by the WebBrowser (e.g., attempting to swipe and rotate the 3D game camera).

Expected Result

Once the WebBrowser widget is hidden (Visibility = Hidden or Collapsed), touch events in that screen area should be received by the viewport, allowing the player to look around, swipe to rotate the camera, or interact with underlying gameplay UI.

Observed Result

All touch events (TouchBegan, TouchMoved, TouchEnded) within the rectangular region previously occupied by the WebBrowser are completely swallowed and dropped by LaunchAndroid.cpp (logging: “Received touch event - Ignored”). The camera cannot be rotated and touches fail to register.

Root Cause:

  1. In WebViewControl.java: SetVisibility(boolean InIsVisible) sets webView.setVisibility(View.GONE), but does not remove webView from ExtraIgnoreClickViews. Removal only happens on destruction in Close().
  2. In GameActivity.java.template: AndroidThunkJava_VirtualInputIgnoreClick(int x, int y) iterates ExtraIgnoreViews without checking view.isShown() or verifying the boolean return value of getGlobalVisibleRect(r).
  3. Therefore, LaunchAndroid.cpp:1414 continuously drops touches inside the old WebBrowser bounds even after the widget is hidden.

Affects Versions

5.8

Platform(s)

Android