mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-25 13:51:41 +00:00
bug 245770 : add a pref. to control whether or not replace backslashes with Yen signs in Japanese documents (r=smontagu, sr=dbaron)
This commit is contained in:
parent
95ba2e84ee
commit
bad1f152f4
@ -207,7 +207,7 @@ LAYOUT_ATOM(onDOMCharacterDataModified, "onDOMCharacterDataModified")
|
||||
|
||||
// Alphabetical list of languages for lang-specific transforms
|
||||
LAYOUT_ATOM(Japanese, "ja")
|
||||
LAYOUT_ATOM(Korean, "ko")
|
||||
LAYOUT_ATOM(Unicode, "x-unicode")
|
||||
|
||||
// other
|
||||
LAYOUT_ATOM(wildcard, "*")
|
||||
|
@ -137,9 +137,6 @@ nsLanguageAtomService::LookupCharSet(const char *aCharSet, nsresult *aError)
|
||||
return nsnull;
|
||||
}
|
||||
}
|
||||
if (!mUnicode) {
|
||||
mUnicode = do_GetAtom("x-unicode");
|
||||
}
|
||||
|
||||
nsCOMPtr<nsIAtom> langGroup;
|
||||
mCharSets->GetCharsetLangGroup(aCharSet, getter_AddRefs(langGroup));
|
||||
@ -149,17 +146,6 @@ nsLanguageAtomService::LookupCharSet(const char *aCharSet, nsresult *aError)
|
||||
|
||||
return nsnull;
|
||||
}
|
||||
#if !defined(XP_BEOS)
|
||||
if (langGroup == mUnicode) {
|
||||
langGroup = GetLocaleLanguageGroup(&res);
|
||||
if (NS_FAILED(res)) {
|
||||
if (aError)
|
||||
*aError = res;
|
||||
|
||||
return nsnull;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// transfer reference to raw pointer
|
||||
nsIAtom *raw = nsnull;
|
||||
|
@ -73,5 +73,4 @@ protected:
|
||||
nsInterfaceHashtable<nsStringHashKey, nsIAtom> mLangs;
|
||||
nsCOMPtr<nsIStringBundle> mLangGroups;
|
||||
nsCOMPtr<nsIAtom> mLocaleLangGroup;
|
||||
nsCOMPtr<nsIAtom> mUnicode;
|
||||
};
|
||||
|
@ -207,7 +207,7 @@ LAYOUT_ATOM(onDOMCharacterDataModified, "onDOMCharacterDataModified")
|
||||
|
||||
// Alphabetical list of languages for lang-specific transforms
|
||||
LAYOUT_ATOM(Japanese, "ja")
|
||||
LAYOUT_ATOM(Korean, "ko")
|
||||
LAYOUT_ATOM(Unicode, "x-unicode")
|
||||
|
||||
// other
|
||||
LAYOUT_ATOM(wildcard, "*")
|
||||
|
@ -521,6 +521,10 @@ nsPresContext::GetUserPreferences()
|
||||
mUseDocumentFonts =
|
||||
nsContentUtils::GetIntPref("browser.display.use_document_fonts") != 0;
|
||||
|
||||
// * replace backslashes with Yen signs? (bug 245770)
|
||||
mEnableJapaneseTransform =
|
||||
nsContentUtils::GetBoolPref("layout.enable_japanese_specific_transform");
|
||||
|
||||
GetFontPreferences();
|
||||
|
||||
// * image animation
|
||||
@ -726,19 +730,23 @@ nsPresContext::UpdateCharSet(const char* aCharSet)
|
||||
if (mLangService) {
|
||||
NS_IF_RELEASE(mLangGroup);
|
||||
mLangGroup = mLangService->LookupCharSet(aCharSet).get(); // addrefs
|
||||
GetFontPreferences();
|
||||
if (mLangGroup == nsLayoutAtoms::Japanese) {
|
||||
|
||||
if (mLangGroup == nsLayoutAtoms::Japanese && mEnableJapaneseTransform) {
|
||||
mLanguageSpecificTransformType =
|
||||
eLanguageSpecificTransformType_Japanese;
|
||||
}
|
||||
else if (mLangGroup == nsLayoutAtoms::Korean) {
|
||||
mLanguageSpecificTransformType =
|
||||
eLanguageSpecificTransformType_Korean;
|
||||
}
|
||||
else {
|
||||
mLanguageSpecificTransformType =
|
||||
eLanguageSpecificTransformType_None;
|
||||
}
|
||||
// bug 39570: moved from nsLanguageAtomService::LookupCharSet()
|
||||
#if !defined(XP_BEOS)
|
||||
if (mLangGroup == nsLayoutAtoms::Unicode) {
|
||||
NS_RELEASE(mLangGroup);
|
||||
NS_IF_ADDREF(mLangGroup = mLangService->GetLocaleLanguageGroup());
|
||||
}
|
||||
#endif
|
||||
GetFontPreferences();
|
||||
}
|
||||
#ifdef IBMBIDI
|
||||
//ahmed
|
||||
|
@ -93,8 +93,7 @@ enum nsWidgetType {
|
||||
enum nsLanguageSpecificTransformType {
|
||||
eLanguageSpecificTransformType_Unknown = -1,
|
||||
eLanguageSpecificTransformType_None = 0,
|
||||
eLanguageSpecificTransformType_Japanese,
|
||||
eLanguageSpecificTransformType_Korean
|
||||
eLanguageSpecificTransformType_Japanese
|
||||
};
|
||||
|
||||
// supported values for cached bool types
|
||||
|
@ -93,8 +93,7 @@ enum nsWidgetType {
|
||||
enum nsLanguageSpecificTransformType {
|
||||
eLanguageSpecificTransformType_Unknown = -1,
|
||||
eLanguageSpecificTransformType_None = 0,
|
||||
eLanguageSpecificTransformType_Japanese,
|
||||
eLanguageSpecificTransformType_Korean
|
||||
eLanguageSpecificTransformType_Japanese
|
||||
};
|
||||
|
||||
// supported values for cached bool types
|
||||
|
@ -93,8 +93,7 @@ enum nsWidgetType {
|
||||
enum nsLanguageSpecificTransformType {
|
||||
eLanguageSpecificTransformType_Unknown = -1,
|
||||
eLanguageSpecificTransformType_None = 0,
|
||||
eLanguageSpecificTransformType_Japanese,
|
||||
eLanguageSpecificTransformType_Korean
|
||||
eLanguageSpecificTransformType_Japanese
|
||||
};
|
||||
|
||||
// supported values for cached bool types
|
||||
|
@ -521,6 +521,10 @@ nsPresContext::GetUserPreferences()
|
||||
mUseDocumentFonts =
|
||||
nsContentUtils::GetIntPref("browser.display.use_document_fonts") != 0;
|
||||
|
||||
// * replace backslashes with Yen signs? (bug 245770)
|
||||
mEnableJapaneseTransform =
|
||||
nsContentUtils::GetBoolPref("layout.enable_japanese_specific_transform");
|
||||
|
||||
GetFontPreferences();
|
||||
|
||||
// * image animation
|
||||
@ -726,19 +730,23 @@ nsPresContext::UpdateCharSet(const char* aCharSet)
|
||||
if (mLangService) {
|
||||
NS_IF_RELEASE(mLangGroup);
|
||||
mLangGroup = mLangService->LookupCharSet(aCharSet).get(); // addrefs
|
||||
GetFontPreferences();
|
||||
if (mLangGroup == nsLayoutAtoms::Japanese) {
|
||||
|
||||
if (mLangGroup == nsLayoutAtoms::Japanese && mEnableJapaneseTransform) {
|
||||
mLanguageSpecificTransformType =
|
||||
eLanguageSpecificTransformType_Japanese;
|
||||
}
|
||||
else if (mLangGroup == nsLayoutAtoms::Korean) {
|
||||
mLanguageSpecificTransformType =
|
||||
eLanguageSpecificTransformType_Korean;
|
||||
}
|
||||
else {
|
||||
mLanguageSpecificTransformType =
|
||||
eLanguageSpecificTransformType_None;
|
||||
}
|
||||
// bug 39570: moved from nsLanguageAtomService::LookupCharSet()
|
||||
#if !defined(XP_BEOS)
|
||||
if (mLangGroup == nsLayoutAtoms::Unicode) {
|
||||
NS_RELEASE(mLangGroup);
|
||||
NS_IF_ADDREF(mLangGroup = mLangService->GetLocaleLanguageGroup());
|
||||
}
|
||||
#endif
|
||||
GetFontPreferences();
|
||||
}
|
||||
#ifdef IBMBIDI
|
||||
//ahmed
|
||||
|
@ -126,6 +126,8 @@ protected:
|
||||
|
||||
nsSupportsHashtable mImageLoaders;
|
||||
|
||||
PRBool mEnableJapaneseTransform;
|
||||
|
||||
#ifdef IBMBIDI
|
||||
nsBidiPresUtils* mBidiUtils;
|
||||
PRUint32 mBidi;
|
||||
|
@ -768,6 +768,11 @@ pref("bidi.characterset", 1);
|
||||
pref("layout.word_select.eat_space_to_next_word", false);
|
||||
pref("layout.word_select.stop_at_punctuation", true);
|
||||
|
||||
// pref to control whether or not to replace backslashes with Yen signs
|
||||
// in documents encoded in one of Japanese legacy encodings (EUC-JP,
|
||||
// Shift_JIS, ISO-2022-JP)
|
||||
pref("layout.enable_japanese_specific_transform", false);
|
||||
|
||||
// pref to force frames to be resizable
|
||||
pref("layout.frames.force_resizability", false);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user