InputDispatcher: Do not change focus when using transferTouch

Since window focus requests are not fully synchronized between
InputDispatcher and WM, there can be adverse impacts of rapid gesture
transfers on the focused window. This is because when transferring
touch, we synthesize a pointer DOWN, and if that event id directed to a
non-focused window, Dispatcher will notify the policy that
onPointerDownOutsideFocus to get WM to change the focused window.

We want the concepts of touched windows and focused windows to be
orthogonal. To support this, change the behavior of the transferTouch
API to ensure that transfering touches don't result in changes in focus.

Bug: 324265767
Test: atest inputflinger_tests
Change-Id: I07607c6ac6c91a1a5ad4433b451aa8dfb23f42a7
diff --git a/services/inputflinger/dispatcher/include/InputDispatcherInterface.h b/services/inputflinger/dispatcher/include/InputDispatcherInterface.h
index c8f3d05..36cebcc 100644
--- a/services/inputflinger/dispatcher/include/InputDispatcherInterface.h
+++ b/services/inputflinger/dispatcher/include/InputDispatcherInterface.h
@@ -140,7 +140,9 @@
      */
     virtual void setMaximumObscuringOpacityForTouch(float opacity) = 0;
 
-    /* Transfers touch focus from one window to another window.
+    /**
+     * Transfers touch focus from one window to another window. Transferring touch focus will not
+     * have any effect on the focused window.
      *
      * Returns true on success.  False if the window did not actually have touch focus.
      */
@@ -149,6 +151,7 @@
 
     /**
      * Transfer touch focus to the provided channel, no matter where the current touch is.
+     * Transferring touch focus will not have any effect on the focused window.
      *
      * Return true on success, false if there was no on-going touch.
      */