more bugs fixed in keyboard text selection

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18956 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stefano Ceccherini
2006-09-28 11:38:56 +00:00
parent 85baf76e1a
commit 3091f56a1a
+12 -14
View File
@@ -2844,15 +2844,14 @@ BTextView::HandleArrowKey(uint32 inArrowKey)
if (shiftDown) { if (shiftDown) {
fClickOffset = PreviousInitialByte(fClickOffset); fClickOffset = PreviousInitialByte(fClickOffset);
if (fClickOffset != currentOffset) { if (fClickOffset != currentOffset) {
if (fClickOffset >= fSelStart) { if (fClickOffset >= fSelStart)
selStart = fSelStart;
selEnd = fClickOffset; selEnd = fClickOffset;
} else { else
selStart = fClickOffset; selStart = fClickOffset;
selEnd = fSelEnd;
}
} }
} else } else if (fSelStart != fSelEnd)
fClickOffset = fSelStart;
else
fClickOffset = PreviousInitialByte(fSelStart); fClickOffset = PreviousInitialByte(fSelStart);
break; break;
@@ -2861,15 +2860,14 @@ BTextView::HandleArrowKey(uint32 inArrowKey)
if (shiftDown) { if (shiftDown) {
fClickOffset = NextInitialByte(fClickOffset); fClickOffset = NextInitialByte(fClickOffset);
if (fClickOffset != currentOffset) { if (fClickOffset != currentOffset) {
if (fClickOffset <= fSelEnd) { if (fClickOffset <= fSelEnd)
selStart = fClickOffset; selStart = fClickOffset;
selEnd = fSelEnd; else
} else {
selStart = fSelStart;
selEnd = fClickOffset; selEnd = fClickOffset;
}
} }
} else } else if (fSelStart != fSelEnd)
fClickOffset = fSelEnd;
else
fClickOffset = NextInitialByte(fSelEnd); fClickOffset = NextInitialByte(fSelEnd);
break; break;
@@ -2880,7 +2878,7 @@ BTextView::HandleArrowKey(uint32 inArrowKey)
point.y -= height; point.y -= height;
fClickOffset = OffsetAt(point); fClickOffset = OffsetAt(point);
if (shiftDown) { if (shiftDown) {
if (fClickOffset > fSelStart) if (fClickOffset >= fSelStart)
selEnd = fClickOffset; selEnd = fClickOffset;
else else
selStart = fClickOffset; selStart = fClickOffset;
@@ -2895,7 +2893,7 @@ BTextView::HandleArrowKey(uint32 inArrowKey)
point.y += height; point.y += height;
fClickOffset = OffsetAt(point); fClickOffset = OffsetAt(point);
if (shiftDown) { if (shiftDown) {
if (fClickOffset < fSelEnd) if (fClickOffset <= fSelEnd)
selStart = fClickOffset; selStart = fClickOffset;
else else
selEnd = fClickOffset; selEnd = fClickOffset;