From 9784553190d6bb52e13e12bb3e6f6e5a3a872a80 Mon Sep 17 00:00:00 2001 From: "shanjian%netscape.com" Date: Wed, 3 Apr 2002 23:26:58 +0000 Subject: [PATCH] #128394 Cursor position widely off from actual text when selection is made. Taking langGroup into consideration when selecting font for text selection, it should be consistent with the way of rendering text. r=rbs, sr=attinasi, a=asa, adt git-svn-id: svn://10.0.0.236/trunk@118049 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/layout/generic/nsTextFrame.cpp | 10 +++++++++- mozilla/layout/html/base/src/nsTextFrame.cpp | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/mozilla/layout/generic/nsTextFrame.cpp b/mozilla/layout/generic/nsTextFrame.cpp index d36749dc2e1..43333625258 100644 --- a/mozilla/layout/generic/nsTextFrame.cpp +++ b/mozilla/layout/generic/nsTextFrame.cpp @@ -3400,9 +3400,17 @@ nsTextFrame::GetPosition(nsIPresContext* aCX, GetStyleContext(&styleContext); const nsStyleFont *font = (const nsStyleFont*) styleContext->GetStyleData(eStyleStruct_Font); + const nsStyleVisibility* visibility = (const nsStyleVisibility*) + styleContext->GetStyleData(eStyleStruct_Visibility); NS_RELEASE(styleContext); + nsCOMPtr langGroup; + if (visibility && visibility->mLanguage) { + visibility->mLanguage->GetLanguageGroup(getter_AddRefs(langGroup)); + } nsCOMPtr fm; - aCX->GetMetricsFor(font->mFont, getter_AddRefs(fm)); + nsCOMPtr dx; + aCX->GetDeviceContext(getter_AddRefs(dx)); + dx->GetMetricsFor(font->mFont, langGroup, *getter_AddRefs(fm)); acx->SetFont(fm); // Get the renderable form of the text diff --git a/mozilla/layout/html/base/src/nsTextFrame.cpp b/mozilla/layout/html/base/src/nsTextFrame.cpp index d36749dc2e1..43333625258 100644 --- a/mozilla/layout/html/base/src/nsTextFrame.cpp +++ b/mozilla/layout/html/base/src/nsTextFrame.cpp @@ -3400,9 +3400,17 @@ nsTextFrame::GetPosition(nsIPresContext* aCX, GetStyleContext(&styleContext); const nsStyleFont *font = (const nsStyleFont*) styleContext->GetStyleData(eStyleStruct_Font); + const nsStyleVisibility* visibility = (const nsStyleVisibility*) + styleContext->GetStyleData(eStyleStruct_Visibility); NS_RELEASE(styleContext); + nsCOMPtr langGroup; + if (visibility && visibility->mLanguage) { + visibility->mLanguage->GetLanguageGroup(getter_AddRefs(langGroup)); + } nsCOMPtr fm; - aCX->GetMetricsFor(font->mFont, getter_AddRefs(fm)); + nsCOMPtr dx; + aCX->GetDeviceContext(getter_AddRefs(dx)); + dx->GetMetricsFor(font->mFont, langGroup, *getter_AddRefs(fm)); acx->SetFont(fm); // Get the renderable form of the text