Fix remaining Android bugs reported over the past months
authorPo Lu <luangruo@yahoo.com>
Wed, 19 Feb 2025 12:40:12 +0000 (20:40 +0800)
committerPo Lu <luangruo@yahoo.com>
Wed, 19 Feb 2025 12:40:12 +0000 (20:40 +0800)
commitded77feffface0c167edacf0d807273f3d4878db
tree7849fa1827ed2ad92420d5e43589a8a43d0eaca9
parente97be722d392056b6ef9e47664273ee2ca7df374
Fix remaining Android bugs reported over the past months

* java/org/gnu/emacs/EmacsActivity.java (attachWindow):
Guarantee that child windows promoted to toplevels receive
layout parameters that direct them to receive their parents'
dimensions.  Otherwise, the size of the window as a child is
retained on Huawei HarmonyOS 4.2 and possibly other Android
distributions.

* java/org/gnu/emacs/EmacsService.java (updateCursorAnchorInfo):
Run anchor updates on the UI thread, as
`InputMethodManager#updateCursorAnchorInfo' is liable to call
`View#requestLayout'.

* java/org/gnu/emacs/EmacsView.java (onMeasure): Always call
`measureChildren', or child frames' onLayout handlers might not
be invoked after they request a layout cycle and are duly
processed in `onLayout'.
(swapBuffers): Delete erroneous commentary.

* java/org/gnu/emacs/EmacsWindow.java (viewLayout): If
overrideRedirect, don't inadvertently clear rect.left and
rect.top by recording the window's WM window-relative position.
Fix typos.
(reparentTo): Invalidate focus after transferring frame.
(translateCoordinates): Account for override-redirect windows.
Mostly important for mouse-drag-and-drop-region.
java/org/gnu/emacs/EmacsActivity.java
java/org/gnu/emacs/EmacsService.java
java/org/gnu/emacs/EmacsView.java
java/org/gnu/emacs/EmacsWindow.java