fix key preview showing up at wrong position in one-handed mode

This commit is contained in:
Helium314 2024-01-26 19:04:17 +01:00
parent 2226bb98a8
commit b35eb64800
2 changed files with 6 additions and 6 deletions

View file

@ -440,7 +440,7 @@ public final class MainKeyboardView extends KeyboardView implements DrawingProxy
locatePreviewPlacerView(); locatePreviewPlacerView();
getLocationInWindow(mOriginCoords); getLocationInWindow(mOriginCoords);
mKeyPreviewChoreographer.placeAndShowKeyPreview(key, keyboard.mIconsSet, getKeyDrawParams(), mKeyPreviewChoreographer.placeAndShowKeyPreview(key, keyboard.mIconsSet, getKeyDrawParams(),
getWidth(), mOriginCoords, mDrawingPreviewPlacerView); KeyboardSwitcher.getInstance().getWrapperView().getWidth(), mOriginCoords, mDrawingPreviewPlacerView);
} }
private void dismissKeyPreviewWithoutDelay(@NonNull final Key key) { private void dismissKeyPreviewWithoutDelay(@NonNull final Key key) {

View file

@ -75,16 +75,16 @@ public final class KeyPreviewChoreographer {
} }
public void placeAndShowKeyPreview(final Key key, final KeyboardIconsSet iconsSet, public void placeAndShowKeyPreview(final Key key, final KeyboardIconsSet iconsSet,
final KeyDrawParams drawParams, final int keyboardViewWidth, final int[] keyboardOrigin, final KeyDrawParams drawParams, final int fullKeyboardViewWidth, final int[] keyboardOrigin,
final ViewGroup placerView) { final ViewGroup placerView) {
final KeyPreviewView keyPreviewView = getKeyPreviewView(key, placerView); final KeyPreviewView keyPreviewView = getKeyPreviewView(key, placerView);
placeKeyPreview(key, keyPreviewView, iconsSet, drawParams, keyboardViewWidth, keyboardOrigin); placeKeyPreview(key, keyPreviewView, iconsSet, drawParams, fullKeyboardViewWidth, keyboardOrigin);
showKeyPreview(key, keyPreviewView); showKeyPreview(key, keyPreviewView);
} }
private void placeKeyPreview(final Key key, final KeyPreviewView keyPreviewView, private void placeKeyPreview(final Key key, final KeyPreviewView keyPreviewView,
final KeyboardIconsSet iconsSet, final KeyDrawParams drawParams, final KeyboardIconsSet iconsSet, final KeyDrawParams drawParams,
final int keyboardViewWidth, final int[] originCoords) { final int fullKeyboardViewWidth, final int[] originCoords) {
keyPreviewView.setPreviewVisual(key, iconsSet, drawParams); keyPreviewView.setPreviewVisual(key, iconsSet, drawParams);
keyPreviewView.measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); keyPreviewView.measure(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
mParams.setGeometry(keyPreviewView); mParams.setGeometry(keyPreviewView);
@ -99,8 +99,8 @@ public final class KeyPreviewChoreographer {
if (previewX < 0) { if (previewX < 0) {
previewX = 0; previewX = 0;
keyPreviewPosition = KeyPreviewView.POSITION_LEFT; keyPreviewPosition = KeyPreviewView.POSITION_LEFT;
} else if (previewX > keyboardViewWidth - previewWidth) { } else if (previewX > fullKeyboardViewWidth - previewWidth) {
previewX = keyboardViewWidth - previewWidth; previewX = fullKeyboardViewWidth - previewWidth;
keyPreviewPosition = KeyPreviewView.POSITION_RIGHT; keyPreviewPosition = KeyPreviewView.POSITION_RIGHT;
} else { } else {
keyPreviewPosition = KeyPreviewView.POSITION_MIDDLE; keyPreviewPosition = KeyPreviewView.POSITION_MIDDLE;