|
|
@@ -30,6 +30,7 @@ import io.legado.app.ui.book.read.page.entities.PageDirection
|
|
|
import io.legado.app.ui.book.read.page.entities.TextChapter
|
|
|
import io.legado.app.ui.book.read.page.entities.TextPage
|
|
|
import io.legado.app.ui.book.read.page.entities.TextPos
|
|
|
+import io.legado.app.ui.book.read.page.entities.column.TextColumn
|
|
|
import io.legado.app.ui.book.read.page.provider.ChapterProvider
|
|
|
import io.legado.app.ui.book.read.page.provider.LayoutProgressListener
|
|
|
import io.legado.app.ui.book.read.page.provider.TextPageFactory
|
|
|
@@ -357,7 +358,7 @@ class ReadView(context: Context, attrs: AttributeSet) :
|
|
|
var ci = 0
|
|
|
for (index in lineStart..lineEnd) {
|
|
|
val textLine = page.getLine(index)
|
|
|
- for (j in 0 until textLine.charSize) {
|
|
|
+ for (j in textLine.columns.indices) {
|
|
|
if (ci == start) {
|
|
|
startPos.lineIndex = index
|
|
|
startPos.columnIndex = j
|
|
|
@@ -366,7 +367,12 @@ class ReadView(context: Context, attrs: AttributeSet) :
|
|
|
endPos.columnIndex = j
|
|
|
return@run
|
|
|
}
|
|
|
- ci++
|
|
|
+ val column = textLine.getColumn(j)
|
|
|
+ if (column is TextColumn) {
|
|
|
+ ci += column.charData.length
|
|
|
+ } else {
|
|
|
+ ci++
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|