summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFabrice Di Meglio <fdimeglio@google.com>2012-10-03 17:17:14 -0700
committerFabrice Di Meglio <fdimeglio@google.com>2012-10-03 17:17:14 -0700
commitdb24f0a73f4385aea104367a4bc71b78f25dbc3f (patch)
treeb147f969943fcaeac0cc3939fd96cbcd8f8bc3c4
parent217ca3b0d310472e4df1aa4af72769d7c7a5becb (diff)
downloadframeworks_base-db24f0a73f4385aea104367a4bc71b78f25dbc3f.zip
frameworks_base-db24f0a73f4385aea104367a4bc71b78f25dbc3f.tar.gz
frameworks_base-db24f0a73f4385aea104367a4bc71b78f25dbc3f.tar.bz2
Fix bug #7282594 EditText does not allow to move the cursor when typing RTL text and if gravity is set to LEFT
- fold LEFT/RIGHT into NORMAL/OPPOSITE cases Change-Id: Idf14342ffed4840e7b4ea53cc42f1cde8f196a4c
-rw-r--r--core/java/android/text/Layout.java15
1 files changed, 9 insertions, 6 deletions
diff --git a/core/java/android/text/Layout.java b/core/java/android/text/Layout.java
index d2bed48..123acca 100644
--- a/core/java/android/text/Layout.java
+++ b/core/java/android/text/Layout.java
@@ -475,10 +475,14 @@ public abstract class Layout {
Alignment align = getParagraphAlignment(line);
int dir = getParagraphDirection(line);
- int x;
if (align == Alignment.ALIGN_LEFT) {
- x = left;
- } else if (align == Alignment.ALIGN_NORMAL) {
+ align = (dir == DIR_LEFT_TO_RIGHT) ? Alignment.ALIGN_NORMAL : Alignment.ALIGN_OPPOSITE;
+ } else if (align == Alignment.ALIGN_RIGHT) {
+ align = (dir == DIR_LEFT_TO_RIGHT) ? Alignment.ALIGN_OPPOSITE : Alignment.ALIGN_NORMAL;
+ }
+
+ int x;
+ if (align == Alignment.ALIGN_NORMAL) {
if (dir == DIR_LEFT_TO_RIGHT) {
x = left;
} else {
@@ -498,12 +502,11 @@ public abstract class Layout {
}
}
int max = (int)getLineExtent(line, tabStops, false);
- if (align == Alignment.ALIGN_RIGHT) {
- x = right - max;
- } else if (align == Alignment.ALIGN_OPPOSITE) {
+ if (align == Alignment.ALIGN_OPPOSITE) {
if (dir == DIR_LEFT_TO_RIGHT) {
x = right - max;
} else {
+ // max is negative here
x = left - max;
}
} else { // Alignment.ALIGN_CENTER