diff options
author | Svetoslav Ganov <svetoslavganov@google.com> | 2012-08-06 16:40:27 -0700 |
---|---|---|
committer | Svetoslav Ganov <svetoslavganov@google.com> | 2012-08-06 23:49:38 -0700 |
commit | 758143ecfedbe08cc6c4fed0ad8ad7a854194ca4 (patch) | |
tree | c7102e7f3b5f71180cb23d1a13c01158f558feb6 /core/java/android/inputmethodservice | |
parent | 4cb3384772cf7015a4e05789470123efb07219d9 (diff) | |
download | frameworks_base-758143ecfedbe08cc6c4fed0ad8ad7a854194ca4.zip frameworks_base-758143ecfedbe08cc6c4fed0ad8ad7a854194ca4.tar.gz frameworks_base-758143ecfedbe08cc6c4fed0ad8ad7a854194ca4.tar.bz2 |
Window position not reported if the window is not moved.
1.If a window is shown but never moved the window window
is never notified for its current location. Therefore,
accessibility nodes do not contain correct bounds in
screen coordinates.
bug:6926295
Change-Id: I7df18b095d33ecafffced75aba9e4f4693b0c393
Diffstat (limited to 'core/java/android/inputmethodservice')
-rw-r--r-- | core/java/android/inputmethodservice/IInputMethodSessionWrapper.java | 17 | ||||
-rw-r--r-- | core/java/android/inputmethodservice/IInputMethodWrapper.java | 10 |
2 files changed, 16 insertions, 11 deletions
diff --git a/core/java/android/inputmethodservice/IInputMethodSessionWrapper.java b/core/java/android/inputmethodservice/IInputMethodSessionWrapper.java index e10f218..ce797d1 100644 --- a/core/java/android/inputmethodservice/IInputMethodSessionWrapper.java +++ b/core/java/android/inputmethodservice/IInputMethodSessionWrapper.java @@ -17,6 +17,7 @@ package android.inputmethodservice; import com.android.internal.os.HandlerCaller; +import com.android.internal.os.SomeArgs; import com.android.internal.view.IInputMethodCallback; import com.android.internal.view.IInputMethodSession; @@ -91,28 +92,28 @@ class IInputMethodSessionWrapper extends IInputMethodSession.Stub (ExtractedText)msg.obj); return; case DO_DISPATCH_KEY_EVENT: { - HandlerCaller.SomeArgs args = (HandlerCaller.SomeArgs)msg.obj; + SomeArgs args = (SomeArgs)msg.obj; mInputMethodSession.dispatchKeyEvent(msg.arg1, (KeyEvent)args.arg1, new InputMethodEventCallbackWrapper( (IInputMethodCallback)args.arg2)); - mCaller.recycleArgs(args); + args.recycle(); return; } case DO_DISPATCH_TRACKBALL_EVENT: { - HandlerCaller.SomeArgs args = (HandlerCaller.SomeArgs)msg.obj; + SomeArgs args = (SomeArgs)msg.obj; mInputMethodSession.dispatchTrackballEvent(msg.arg1, (MotionEvent)args.arg1, new InputMethodEventCallbackWrapper( (IInputMethodCallback)args.arg2)); - mCaller.recycleArgs(args); + args.recycle(); return; } case DO_UPDATE_SELECTION: { - HandlerCaller.SomeArgs args = (HandlerCaller.SomeArgs)msg.obj; + SomeArgs args = (SomeArgs)msg.obj; mInputMethodSession.updateSelection(args.argi1, args.argi2, args.argi3, args.argi4, args.argi5, args.argi6); - mCaller.recycleArgs(args); + args.recycle(); return; } case DO_UPDATE_CURSOR: { @@ -120,10 +121,10 @@ class IInputMethodSessionWrapper extends IInputMethodSession.Stub return; } case DO_APP_PRIVATE_COMMAND: { - HandlerCaller.SomeArgs args = (HandlerCaller.SomeArgs)msg.obj; + SomeArgs args = (SomeArgs)msg.obj; mInputMethodSession.appPrivateCommand((String)args.arg1, (Bundle)args.arg2); - mCaller.recycleArgs(args); + args.recycle(); return; } case DO_TOGGLE_SOFT_INPUT: { diff --git a/core/java/android/inputmethodservice/IInputMethodWrapper.java b/core/java/android/inputmethodservice/IInputMethodWrapper.java index 17c9ee7..5275314 100644 --- a/core/java/android/inputmethodservice/IInputMethodWrapper.java +++ b/core/java/android/inputmethodservice/IInputMethodWrapper.java @@ -17,6 +17,7 @@ package android.inputmethodservice; import com.android.internal.os.HandlerCaller; +import com.android.internal.os.SomeArgs; import com.android.internal.view.IInputContext; import com.android.internal.view.IInputMethod; import com.android.internal.view.IInputMethodCallback; @@ -124,7 +125,7 @@ class IInputMethodWrapper extends IInputMethod.Stub if (target == null) { return; } - HandlerCaller.SomeArgs args = (HandlerCaller.SomeArgs)msg.obj; + SomeArgs args = (SomeArgs)msg.obj; try { target.dump((FileDescriptor)args.arg1, (PrintWriter)args.arg2, (String[])args.arg3); @@ -134,6 +135,7 @@ class IInputMethodWrapper extends IInputMethod.Stub synchronized (args.arg4) { ((CountDownLatch)args.arg4).countDown(); } + args.recycle(); return; } @@ -149,23 +151,25 @@ class IInputMethodWrapper extends IInputMethod.Stub inputMethod.unbindInput(); return; case DO_START_INPUT: { - HandlerCaller.SomeArgs args = (HandlerCaller.SomeArgs)msg.obj; + SomeArgs args = (SomeArgs)msg.obj; IInputContext inputContext = (IInputContext)args.arg1; InputConnection ic = inputContext != null ? new InputConnectionWrapper(inputContext) : null; EditorInfo info = (EditorInfo)args.arg2; info.makeCompatible(mTargetSdkVersion); inputMethod.startInput(ic, info); + args.recycle(); return; } case DO_RESTART_INPUT: { - HandlerCaller.SomeArgs args = (HandlerCaller.SomeArgs)msg.obj; + SomeArgs args = (SomeArgs)msg.obj; IInputContext inputContext = (IInputContext)args.arg1; InputConnection ic = inputContext != null ? new InputConnectionWrapper(inputContext) : null; EditorInfo info = (EditorInfo)args.arg2; info.makeCompatible(mTargetSdkVersion); inputMethod.restartInput(ic, info); + args.recycle(); return; } case DO_CREATE_SESSION: { |