diff options
author | 2010-10-12 03:15:36 +0900 | |
---|---|---|
committer | 2010-10-12 03:15:36 +0900 | |
commit | 39004972b145065bf52e32d1d1cb361f96ed4501 (patch) | |
tree | 485c9ff27c3661888dde6c4543eebb8055451c9d | |
parent | 3de6ba6ab9713db4b617e46fa8daa559a816fdea (diff) | |
parent | fd64e47c2b00a6ac7eb73a6a6601d9248bad6b84 (diff) | |
download | latinime-39004972b145065bf52e32d1d1cb361f96ed4501.tar.gz latinime-39004972b145065bf52e32d1d1cb361f96ed4501.tar.xz latinime-39004972b145065bf52e32d1d1cb361f96ed4501.zip |
resolved conflicts for merge of fd64e47c to master
Change-Id: I07434c251fafa5eee548a54dae30d91df3a24085
-rw-r--r-- | java/res/xml/kbd_popup_narrow_template.xml | 27 | ||||
-rw-r--r-- | java/res/xml/kbd_qwerty.xml | 2 | ||||
-rw-r--r-- | java/res/xml/kbd_qwerty_black.xml | 2 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java | 22 |
4 files changed, 45 insertions, 8 deletions
diff --git a/java/res/xml/kbd_popup_narrow_template.xml b/java/res/xml/kbd_popup_narrow_template.xml new file mode 100644 index 000000000..ed3b13003 --- /dev/null +++ b/java/res/xml/kbd_popup_narrow_template.xml @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="utf-8"?> +<!-- +/* +** +** Copyright 2010, The Android Open Source Project +** +** Licensed under the Apache License, Version 2.0 (the "License"); +** you may not use this file except in compliance with the License. +** You may obtain a copy of the License at +** +** http://www.apache.org/licenses/LICENSE-2.0 +** +** Unless required by applicable law or agreed to in writing, software +** distributed under the License is distributed on an "AS IS" BASIS, +** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +** See the License for the specific language governing permissions and +** limitations under the License. +*/ +--> + +<Keyboard xmlns:android="http://schemas.android.com/apk/res/android" + android:keyWidth="9.45%p" + android:horizontalGap="0px" + android:verticalGap="0px" + android:keyHeight="@dimen/key_height" + > +</Keyboard> diff --git a/java/res/xml/kbd_qwerty.xml b/java/res/xml/kbd_qwerty.xml index 1495bae77..c14c7fa0c 100644 --- a/java/res/xml/kbd_qwerty.xml +++ b/java/res/xml/kbd_qwerty.xml @@ -70,7 +70,7 @@ <Key latin:keyLabel="o" latin:keyHintIcon="@drawable/keyboard_hint_9" - latin:popupKeyboard="@xml/kbd_popup_template" + latin:popupKeyboard="@xml/kbd_popup_narrow_template" latin:popupCharacters="@string/alternates_for_o" /> <Key latin:keyLabel="p" diff --git a/java/res/xml/kbd_qwerty_black.xml b/java/res/xml/kbd_qwerty_black.xml index ab3148da3..e1aa4f323 100644 --- a/java/res/xml/kbd_qwerty_black.xml +++ b/java/res/xml/kbd_qwerty_black.xml @@ -70,7 +70,7 @@ <Key latin:keyLabel="o" latin:keyHintIcon="@drawable/keyboard_hint_9" - latin:popupKeyboard="@xml/kbd_popup_template" + latin:popupKeyboard="@xml/kbd_popup_narrow_template" latin:popupCharacters="@string/alternates_for_o" /> <Key latin:keyLabel="p" diff --git a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java index b160da231..3d107198e 100644 --- a/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java +++ b/java/src/com/android/inputmethod/latin/LatinKeyboardBaseView.java @@ -1101,8 +1101,7 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx return container; } - private static boolean isOneRowKeyboard(BaseKeyboard keyboard) { - final List<Key> keys = keyboard.getKeys(); + private static boolean isOneRowKeys(List<Key> keys) { if (keys.size() == 0) return false; final int edgeFlags = keys.get(0).edgeFlags; // HACK: The first key of mini keyboard which was inflated from xml and has multiple rows, @@ -1140,24 +1139,35 @@ public class LatinKeyboardBaseView extends View implements PointerTracker.UIProx getLocationInWindow(mWindowOffset); } + // Get width of a key in the mini popup keyboard = "miniKeyWidth". + // On the other hand, "popupKey.width" is width of the pressed key on the main keyboard. + // We adjust the position of mini popup keyboard with the edge key in it: + // a) When we have the leftmost key in popup keyboard directly above the pressed key + // Right edges of both keys should be aligned for consistent default selection + // b) When we have the rightmost key in popup keyboard directly above the pressed key + // Left edges of both keys should be aligned for consistent default selection + final List<Key> miniKeys = mMiniKeyboard.getKeyboard().getKeys(); + final int miniKeyWidth = miniKeys.size() > 0 ? miniKeys.get(0).width : 0; + // HACK: Have the leftmost number in the popup characters right above the key boolean isNumberAtLeftmost = hasMultiplePopupChars(popupKey) && isNumberAtLeftmostPopupChar(popupKey); int popupX = popupKey.x + mWindowOffset[0]; - int popupY = popupKey.y + mWindowOffset[1]; + popupX += getPaddingLeft(); if (isNumberAtLeftmost) { + popupX += popupKey.width - miniKeyWidth; // adjustment for a) described above popupX -= container.getPaddingLeft(); } else { - popupX += popupKey.width + getPaddingLeft(); + popupX += miniKeyWidth; // adjustment for b) described above popupX -= container.getMeasuredWidth(); popupX += container.getPaddingRight(); } + int popupY = popupKey.y + mWindowOffset[1]; popupY += getPaddingTop(); popupY -= container.getMeasuredHeight(); popupY += container.getPaddingBottom(); final int x = popupX; - final int y = mShowPreview && isOneRowKeyboard(mMiniKeyboard.getKeyboard()) - ? mPopupPreviewDisplayedY : popupY; + final int y = mShowPreview && isOneRowKeys(miniKeys) ? mPopupPreviewDisplayedY : popupY; int adjustedX = x; if (x < 0) { |