зеркало из https://github.com/mozilla/pjs.git
fix bug 80793.
check bidi frame before we call next sibling check in for simon@softel.co.il r/sr=kin
This commit is contained in:
Родитель
2fb2d3cc2a
Коммит
d897428761
|
@ -3677,11 +3677,22 @@ nsTextFrame::GetChildFrameContainingOffset(PRInt32 inContentOffset,
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#ifdef IBMBIDI // Simon
|
#ifdef IBMBIDI // Simon
|
||||||
|
// There is no nextInFlow - check if there is a bidi
|
||||||
|
// continuation frame
|
||||||
|
if (mState & NS_FRAME_IS_BIDI)
|
||||||
|
{
|
||||||
nsIFrame *nextBidi;
|
nsIFrame *nextBidi;
|
||||||
GetNextSibling(&nextBidi);
|
GetNextSibling(&nextBidi);
|
||||||
if (nextBidi)
|
if (nextBidi)
|
||||||
return nextBidi->GetChildFrameContainingOffset(inContentOffset, inHint, outFrameContentOffset, outChildFrame);
|
{
|
||||||
else
|
PRInt32 start, end;
|
||||||
|
if (NS_SUCCEEDED(nextBidi->GetOffsets(start, end)) && start > 0)
|
||||||
|
{
|
||||||
|
return nextBidi->GetChildFrameContainingOffset(inContentOffset,
|
||||||
|
inHint, outFrameContentOffset, outChildFrame);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif // IBMBIDI
|
#endif // IBMBIDI
|
||||||
{
|
{
|
||||||
if (contentOffset != mContentLength) //that condition was only for when there is a choice
|
if (contentOffset != mContentLength) //that condition was only for when there is a choice
|
||||||
|
|
|
@ -3677,11 +3677,22 @@ nsTextFrame::GetChildFrameContainingOffset(PRInt32 inContentOffset,
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#ifdef IBMBIDI // Simon
|
#ifdef IBMBIDI // Simon
|
||||||
|
// There is no nextInFlow - check if there is a bidi
|
||||||
|
// continuation frame
|
||||||
|
if (mState & NS_FRAME_IS_BIDI)
|
||||||
|
{
|
||||||
nsIFrame *nextBidi;
|
nsIFrame *nextBidi;
|
||||||
GetNextSibling(&nextBidi);
|
GetNextSibling(&nextBidi);
|
||||||
if (nextBidi)
|
if (nextBidi)
|
||||||
return nextBidi->GetChildFrameContainingOffset(inContentOffset, inHint, outFrameContentOffset, outChildFrame);
|
{
|
||||||
else
|
PRInt32 start, end;
|
||||||
|
if (NS_SUCCEEDED(nextBidi->GetOffsets(start, end)) && start > 0)
|
||||||
|
{
|
||||||
|
return nextBidi->GetChildFrameContainingOffset(inContentOffset,
|
||||||
|
inHint, outFrameContentOffset, outChildFrame);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif // IBMBIDI
|
#endif // IBMBIDI
|
||||||
{
|
{
|
||||||
if (contentOffset != mContentLength) //that condition was only for when there is a choice
|
if (contentOffset != mContentLength) //that condition was only for when there is a choice
|
||||||
|
|
Загрузка…
Ссылка в новой задаче