Revision: 12858 http://sourceforge.net/p/skim-app/code/12858 Author: hofman Date: 2022-04-24 14:30:22 +0000 (Sun, 24 Apr 2022) Log Message: ----------- get language direction from view direction when Lang is not present
Modified Paths: -------------- trunk/PDFDocument_SKExtensions.m Modified: trunk/PDFDocument_SKExtensions.m =================================================================== --- trunk/PDFDocument_SKExtensions.m 2022-04-23 21:10:50 UTC (rev 12857) +++ trunk/PDFDocument_SKExtensions.m 2022-04-24 14:30:22 UTC (rev 12858) @@ -157,6 +157,7 @@ CGPDFDocumentRef doc = [self documentRef]; CGPDFDictionaryRef catalog = CGPDFDocumentGetCatalog(doc); const char *pageLayout = NULL; + const char *direction = NULL; CGPDFDictionaryRef viewerPrefs = NULL; NSMutableDictionary *settings = [NSMutableDictionary dictionary]; if (catalog) { @@ -180,10 +181,10 @@ [settings setObject:[NSNumber numberWithBool:YES] forKey:@"displaysAsBook"]; } } - if (CGPDFDictionaryGetName(catalog, "Direction", &pageLayout)) { - if (0 == strcmp(pageLayout, "L2R")) + if (CGPDFDictionaryGetName(catalog, "Direction", &direction)) { + if (0 == strcmp(direction, "L2R")) [settings setObject:[NSNumber numberWithBool:NO] forKey:@"displaysRTL"]; - else if (0 == strcmp(pageLayout, "R2L")) + else if (0 == strcmp(direction, "R2L")) [settings setObject:[NSNumber numberWithBool:YES] forKey:@"displaysRTL"]; } if (CGPDFDictionaryGetDictionary(catalog, "ViewerPreferences", &viewerPrefs)) { @@ -208,6 +209,7 @@ SKLanguageDirections directions = (SKLanguageDirections){NSLocaleLanguageDirectionLeftToRight, NSLocaleLanguageDirectionTopToBottom}; if (catalog) { CGPDFStringRef lang = NULL; + const char *direction = NULL; if (CGPDFDictionaryGetString(catalog, "Lang", &lang)) { NSString *language = (NSString *)CGPDFStringCopyTextString(lang); directions.characterDirection = [NSLocale characterDirectionForLanguage:language]; @@ -225,6 +227,11 @@ directions.characterDirection = NSLocaleLanguageDirectionTopToBottom; } [language release]; + } else if (CGPDFDictionaryGetName(catalog, "Direction", &direction)) { + if (0 == strcmp(direction, "L2R")) + directions.characterDirection = kCFLocaleLanguageDirectionLeftToRight; + else if (0 == strcmp(direction, "R2L")) + directions.characterDirection = kCFLocaleLanguageDirectionRightToLeft; } } return directions; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. _______________________________________________ Skim-app-commit mailing list Skim-app-commit@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/skim-app-commit