git://git.nikiroo.be
/
fanfix.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
#25 fix OOB on mouse down
[fanfix.git]
/
src
/
jexer
/
teditor
/
Document.java
diff --git
a/src/jexer/teditor/Document.java
b/src/jexer/teditor/Document.java
index c84c20787e6453e987db5fcec7f01911b356e959..e1a28a0d37f39504c482da627c880110e3d1a9d8 100644
(file)
--- a/
src/jexer/teditor/Document.java
+++ b/
src/jexer/teditor/Document.java
@@
-185,7
+185,11
@@
public class Document {
* @param cursor the new cursor position
*/
public void setCursor(final int cursor) {
* @param cursor the new cursor position
*/
public void setCursor(final int cursor) {
- lines.get(lineNumber).setCursor(cursor);
+ if (cursor >= lines.get(lineNumber).getDisplayLength()) {
+ lines.get(lineNumber).end();
+ } else {
+ lines.get(lineNumber).setCursor(cursor);
+ }
}
/**
}
/**
@@
-215,7
+219,7
@@
public class Document {
if (lineNumber < lines.size() - 1) {
int x = lines.get(lineNumber).getCursor();
lineNumber++;
if (lineNumber < lines.size() - 1) {
int x = lines.get(lineNumber).getCursor();
lineNumber++;
- if (x > lines.get(lineNumber).getDisplayLength()) {
+ if (x >
=
lines.get(lineNumber).getDisplayLength()) {
lines.get(lineNumber).end();
} else {
lines.get(lineNumber).setCursor(x);
lines.get(lineNumber).end();
} else {
lines.get(lineNumber).setCursor(x);
@@
-239,7
+243,7
@@
public class Document {
if (lineNumber > lines.size() - 1) {
lineNumber = lines.size() - 1;
}
if (lineNumber > lines.size() - 1) {
lineNumber = lines.size() - 1;
}
- if (x > lines.get(lineNumber).getDisplayLength()) {
+ if (x >
=
lines.get(lineNumber).getDisplayLength()) {
lines.get(lineNumber).end();
} else {
lines.get(lineNumber).setCursor(x);
lines.get(lineNumber).end();
} else {
lines.get(lineNumber).setCursor(x);
@@
-258,7
+262,7
@@
public class Document {
if (lineNumber > 0) {
int x = lines.get(lineNumber).getCursor();
lineNumber--;
if (lineNumber > 0) {
int x = lines.get(lineNumber).getCursor();
lineNumber--;
- if (x > lines.get(lineNumber).getDisplayLength()) {
+ if (x >
=
lines.get(lineNumber).getDisplayLength()) {
lines.get(lineNumber).end();
} else {
lines.get(lineNumber).setCursor(x);
lines.get(lineNumber).end();
} else {
lines.get(lineNumber).setCursor(x);
@@
-282,7
+286,7
@@
public class Document {
if (lineNumber < 0) {
lineNumber = 0;
}
if (lineNumber < 0) {
lineNumber = 0;
}
- if (x > lines.get(lineNumber).getDisplayLength()) {
+ if (x >
=
lines.get(lineNumber).getDisplayLength()) {
lines.get(lineNumber).end();
} else {
lines.get(lineNumber).setCursor(x);
lines.get(lineNumber).end();
} else {
lines.get(lineNumber).setCursor(x);