Bug 1076657 pt 1 - Fix ContentEventHandler::OnQueryTextRect for vertical textframes. r=smontagu

This commit is contained in:
Jonathan Kew 2015-02-10 15:28:05 +00:00
Родитель 66ba35c626
Коммит 64eb204042
1 изменённых файлов: 12 добавлений и 3 удалений

Просмотреть файл

@ -942,8 +942,13 @@ ContentEventHandler::OnQueryTextRect(WidgetQueryContentEvent* aEvent)
nsPoint ptOffset;
firstFrame->GetPointFromOffset(nodeOffset, &ptOffset);
// minus 1 to avoid creating an empty rect
rect.x += ptOffset.x - 1;
rect.width -= ptOffset.x - 1;
if (firstFrame->GetWritingMode().IsVertical()) {
rect.y += ptOffset.y - 1;
rect.height -= ptOffset.y - 1;
} else {
rect.x += ptOffset.x - 1;
rect.width -= ptOffset.x - 1;
}
// get the ending frame
nodeOffset = range->EndOffset();
@ -984,7 +989,11 @@ ContentEventHandler::OnQueryTextRect(WidgetQueryContentEvent* aEvent)
// get the ending frame rect
lastFrame->GetPointFromOffset(nodeOffset, &ptOffset);
// minus 1 to avoid creating an empty rect
frameRect.width -= lastFrame->GetRect().width - ptOffset.x - 1;
if (lastFrame->GetWritingMode().IsVertical()) {
frameRect.height -= lastFrame->GetRect().height - ptOffset.y - 1;
} else {
frameRect.width -= lastFrame->GetRect().width - ptOffset.x - 1;
}
if (firstFrame == lastFrame) {
rect.IntersectRect(rect, frameRect);