diff options
Diffstat (limited to 'platform/ios/Classes')
-rw-r--r-- | platform/ios/Classes/MuDocumentController.m | 13 | ||||
-rw-r--r-- | platform/ios/Classes/MuHitView.m | 11 |
2 files changed, 13 insertions, 11 deletions
diff --git a/platform/ios/Classes/MuDocumentController.m b/platform/ios/Classes/MuDocumentController.m index 02efe1ee..1e9f954c 100644 --- a/platform/ios/Classes/MuDocumentController.m +++ b/platform/ios/Classes/MuDocumentController.m @@ -28,15 +28,12 @@ static void flattenOutline(NSMutableArray *titles, NSMutableArray *pages, fz_out indent[level * 4] = 0; while (outline) { - if (outline->dest.kind == FZ_LINK_GOTO) + int page = outline->page; + if (page >= 0 && outline->title) { - int page = outline->dest.ld.gotor.page; - if (page >= 0 && outline->title) - { - NSString *title = @(outline->title); - [titles addObject: [NSString stringWithFormat: @"%s%@", indent, title]]; - [pages addObject: @(page)]; - } + NSString *title = @(outline->title); + [titles addObject: [NSString stringWithFormat: @"%s%@", indent, title]]; + [pages addObject: @(page)]; } flattenOutline(titles, pages, outline->down, level + 1); outline = outline->next; diff --git a/platform/ios/Classes/MuHitView.m b/platform/ios/Classes/MuHitView.m index e94ac94a..b0a1ac4a 100644 --- a/platform/ios/Classes/MuHitView.m +++ b/platform/ios/Classes/MuHitView.m @@ -44,14 +44,19 @@ pageSize = CGSizeMake(100,100); while (link && hitCount < nelem(hitRects)) { - if (link->dest.kind == FZ_LINK_GOTO || link->dest.kind == FZ_LINK_URI) { + if (link->uri) { fz_rect bbox = link->rect; hitRects[hitCount].origin.x = bbox.x0; hitRects[hitCount].origin.y = bbox.y0; hitRects[hitCount].size.width = bbox.x1 - bbox.x0; hitRects[hitCount].size.height = bbox.y1 - bbox.y0; - linkPage[hitCount] = link->dest.kind == FZ_LINK_GOTO ? link->dest.ld.gotor.page : -1; - linkUrl[hitCount] = link->dest.kind == FZ_LINK_URI ? strdup(link->dest.ld.uri.uri) : nil; + if (fz_is_external_link(ctx, link->uri)) { + linkPage[hitCount] = -1; + linkUrl[hitCount] = strdup(link->uri); + } else { + linkPage[hitCount] = fz_resolve_link(ctx, doc, link->uri); + linkUrl[hitCount] = nil; + } hitCount++; } link = link->next; |