Fixed Home/End key handling. Thanks to Andrew for reporting.

I know this won't be the last one :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8439 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stefano Ceccherini
2004-07-20 07:41:47 +00:00
parent 36c3b0457c
commit c1fa3828af
+26 -1
View File
@@ -2909,10 +2909,35 @@ void
BTextView::HandlePageKey(uint32 inPageKey)
{
CALLED();
int32 modifiers = 0;
BMessage *currentMessage = Window()->CurrentMessage();
currentMessage->FindInt32("modifiers", &modifiers);
bool shiftDown = modifiers & B_SHIFT_KEY;
int32 oldOffset;;
int32 newOffset;
switch (inPageKey) {
case B_HOME:
oldOffset = fSelStart;
newOffset = 0;
ScrollToOffset(newOffset);
if (shiftDown)
Select(newOffset, oldOffset);
else
Select(newOffset, newOffset);
break;
case B_END:
ScrollToOffset((inPageKey == B_HOME) ? 0 : fText->Length());
oldOffset = fSelEnd;
newOffset = fText->Length();
ScrollToOffset(newOffset);
if (shiftDown)
Select(oldOffset, newOffset);
else
Select(newOffset, newOffset);
break;
case B_PAGE_UP: