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

Reply via email to