Fixed a bug that I introduced with revision 1.9 when fixing the selection
deletion: you just couldn't delete over a ' ' with backspace... Merged B_BACKSPACE and B_DELETE handling again. Applied suggestions made by Stefano, like using ByteAt(x) over Text()[x]. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10464 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
5622a2e2c5
commit
fc1658382d
@ -174,38 +174,25 @@ FindTextView::KeyDown(const char *bytes, int32 numBytes)
|
||||
break;
|
||||
|
||||
case B_BACKSPACE:
|
||||
{
|
||||
int32 start, end;
|
||||
GetSelection(&start, &end);
|
||||
|
||||
if (bytes[0] == B_BACKSPACE) {
|
||||
if (--start < 0 && end == 0)
|
||||
return;
|
||||
|
||||
start = 0;
|
||||
}
|
||||
|
||||
if (Text()[start] == ' ')
|
||||
BTextView::KeyDown(bytes, numBytes);
|
||||
|
||||
BTextView::KeyDown(bytes, numBytes);
|
||||
|
||||
GetSelection(&start, &end);
|
||||
HexReformat(start, start);
|
||||
Select(start, start);
|
||||
return;
|
||||
}
|
||||
|
||||
case B_DELETE:
|
||||
{
|
||||
int32 start, end;
|
||||
GetSelection(&start, &end);
|
||||
|
||||
if (Text()[start] == ' ')
|
||||
if (bytes[0] == B_BACKSPACE && --start < 0) {
|
||||
if (end == 0)
|
||||
return;
|
||||
start = 0;
|
||||
}
|
||||
|
||||
if (ByteAt(start) == ' ')
|
||||
BTextView::KeyDown(bytes, numBytes);
|
||||
|
||||
BTextView::KeyDown(bytes, numBytes);
|
||||
|
||||
if (bytes[0] == B_BACKSPACE)
|
||||
GetSelection(&start, &end);
|
||||
|
||||
HexReformat(start, start);
|
||||
Select(start, start);
|
||||
return;
|
||||
|
Loading…
Reference in New Issue
Block a user