1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-04 02:09:35 +02:00

avoid FloatMath.hypot usage

This commit is contained in:
Nikolay Pultsin 2015-06-21 09:40:59 +01:00
parent 7b7819f22a
commit aed2af535a
2 changed files with 12 additions and 11 deletions

View file

@ -159,7 +159,8 @@ public final class FBView extends ZLTextView {
return true; return true;
} }
final SelectionCursor.Which cursor = findSelectionCursor(x, y, ZLibrary.Instance().getDisplayDPI() / 4); final float maxDist = ZLibrary.Instance().getDisplayDPI() / 4;
final SelectionCursor.Which cursor = findSelectionCursor(x, y, maxDist * maxDist);
if (cursor != null) { if (cursor != null) {
myReader.runAction(ActionCode.SELECTION_HIDE_PANEL); myReader.runAction(ActionCode.SELECTION_HIDE_PANEL);
moveSelectionCursorTo(cursor, x, y); moveSelectionCursorTo(cursor, x, y);

View file

@ -21,8 +21,6 @@ package org.geometerplus.zlibrary.text.view;
import java.util.*; import java.util.*;
import android.util.FloatMath;
import org.geometerplus.zlibrary.core.application.ZLApplication; import org.geometerplus.zlibrary.core.application.ZLApplication;
import org.geometerplus.zlibrary.core.filesystem.ZLFile; import org.geometerplus.zlibrary.core.filesystem.ZLFile;
import org.geometerplus.zlibrary.core.image.ZLImageData; import org.geometerplus.zlibrary.core.image.ZLImageData;
@ -376,27 +374,29 @@ public abstract class ZLTextView extends ZLTextViewBase {
return null; return null;
} }
private float distanceToCursor(int x, int y, SelectionCursor.Which which) { private float distance2ToCursor(int x, int y, SelectionCursor.Which which) {
final ZLTextSelection.Point point = getSelectionCursorPoint(myCurrentPage, which); final ZLTextSelection.Point point = getSelectionCursorPoint(myCurrentPage, which);
return point != null ? FloatMath.hypot(x - point.X, y - point.Y) : Float.MAX_VALUE; final float dX = x - point.X;
final float dY = y - point.Y;
return point != null ? dX * dX + dY * dY : Float.MAX_VALUE;
} }
protected SelectionCursor.Which findSelectionCursor(int x, int y) { protected SelectionCursor.Which findSelectionCursor(int x, int y) {
return findSelectionCursor(x, y, Float.MAX_VALUE); return findSelectionCursor(x, y, Float.MAX_VALUE);
} }
protected SelectionCursor.Which findSelectionCursor(int x, int y, float maxDistance) { protected SelectionCursor.Which findSelectionCursor(int x, int y, float maxDistance2) {
if (mySelection.isEmpty()) { if (mySelection.isEmpty()) {
return null; return null;
} }
final float leftDistance = distanceToCursor(x, y, SelectionCursor.Which.Left); final float leftDistance2 = distance2ToCursor(x, y, SelectionCursor.Which.Left);
final float rightDistance = distanceToCursor(x, y, SelectionCursor.Which.Right); final float rightDistance2 = distance2ToCursor(x, y, SelectionCursor.Which.Right);
if (rightDistance < leftDistance) { if (rightDistance2 < leftDistance2) {
return rightDistance <= maxDistance ? SelectionCursor.Which.Right : null; return rightDistance2 <= maxDistance2 ? SelectionCursor.Which.Right : null;
} else { } else {
return leftDistance <= maxDistance ? SelectionCursor.Which.Left : null; return leftDistance2 <= maxDistance2 ? SelectionCursor.Which.Left : null;
} }
} }