Revision: 12859
          http://sourceforge.net/p/skim-app/code/12859
Author:   hofman
Date:     2022-04-24 14:35:33 +0000 (Sun, 24 Apr 2022)
Log Message:
-----------
viewer prefs are in viewer prefs dictionary, not directly in catalog

Modified Paths:
--------------
    trunk/PDFDocument_SKExtensions.m

Modified: trunk/PDFDocument_SKExtensions.m
===================================================================
--- trunk/PDFDocument_SKExtensions.m    2022-04-24 14:30:22 UTC (rev 12858)
+++ trunk/PDFDocument_SKExtensions.m    2022-04-24 14:35:33 UTC (rev 12859)
@@ -157,7 +157,6 @@
     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) {
@@ -181,22 +180,23 @@
                 [settings setObject:[NSNumber numberWithBool:YES] 
forKey:@"displaysAsBook"];
             }
         }
-        if (CGPDFDictionaryGetName(catalog, "Direction", &direction)) {
-            if (0 == strcmp(direction, "L2R"))
-                [settings setObject:[NSNumber numberWithBool:NO] 
forKey:@"displaysRTL"];
-            else if (0 == strcmp(direction, "R2L"))
-                [settings setObject:[NSNumber numberWithBool:YES] 
forKey:@"displaysRTL"];
-        }
         if (CGPDFDictionaryGetDictionary(catalog, "ViewerPreferences", 
&viewerPrefs)) {
+            const char *direction = NULL;
             const char *viewArea = NULL;
             CGPDFBoolean fitWindow = false;
-            if (CGPDFDictionaryGetName(catalog, "ViewArea", &viewArea)) {
+            if (CGPDFDictionaryGetName(viewerPrefs, "Direction", &direction)) {
+                if (0 == strcmp(direction, "L2R"))
+                    [settings setObject:[NSNumber numberWithBool:NO] 
forKey:@"displaysRTL"];
+                else if (0 == strcmp(direction, "R2L"))
+                    [settings setObject:[NSNumber numberWithBool:YES] 
forKey:@"displaysRTL"];
+            }
+            if (CGPDFDictionaryGetName(viewerPrefs, "ViewArea", &viewArea)) {
                 if (0 == strcmp(viewArea, "CropBox"))
                     [settings setObject:[NSNumber 
numberWithInteger:kPDFDisplayBoxCropBox] forKey:@"displayBox"];
                 else if (0 == strcmp(viewArea, "MediaBox"))
                     [settings setObject:[NSNumber 
numberWithInteger:kPDFDisplayBoxMediaBox] forKey:@"displayBox"];
             }
-            if (CGPDFDictionaryGetBoolean(catalog, "FitWindow", &fitWindow))
+            if (CGPDFDictionaryGetBoolean(viewerPrefs, "FitWindow", 
&fitWindow))
                 [settings setObject:[NSNumber numberWithBool:(BOOL)fitWindow] 
forKey:@"fitWindow"];
         }
     }
@@ -209,6 +209,7 @@
     SKLanguageDirections directions = 
(SKLanguageDirections){NSLocaleLanguageDirectionLeftToRight, 
NSLocaleLanguageDirectionTopToBottom};
     if (catalog) {
         CGPDFStringRef lang = NULL;
+        CGPDFDictionaryRef viewerPrefs = NULL;
         const char *direction = NULL;
         if (CGPDFDictionaryGetString(catalog, "Lang", &lang)) {
             NSString *language = (NSString *)CGPDFStringCopyTextString(lang);
@@ -227,7 +228,7 @@
                     directions.characterDirection = 
NSLocaleLanguageDirectionTopToBottom;
             }
             [language release];
-        } else if (CGPDFDictionaryGetName(catalog, "Direction", &direction)) {
+        } else if (CGPDFDictionaryGetDictionary(catalog, "ViewerPreferences", 
&viewerPrefs) && CGPDFDictionaryGetName(viewerPrefs, "Direction", &direction)) {
             if (0 == strcmp(direction, "L2R"))
                 directions.characterDirection = 
kCFLocaleLanguageDirectionLeftToRight;
             else if (0 == strcmp(direction, "R2L"))

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