Revision: 27746
          http://sourceforge.net/p/bibdesk/svn/27746
Author:   hofman
Date:     2022-07-20 16:49:43 +0000 (Wed, 20 Jul 2022)
Log Message:
-----------
make visible children accessible

Modified Paths:
--------------
    trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m

Modified: trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m
===================================================================
--- trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m      2022-07-19 
21:42:12 UTC (rev 27745)
+++ trunk/bibdesk_vendorsrc/amaxwell/FileView/FVFileView.m      2022-07-20 
16:49:43 UTC (rev 27746)
@@ -4572,6 +4572,19 @@
     return NSAccessibilityUnignoredChildren(children);
 }
 
+- (NSArray *)accessibilityVisibleChildren {
+    NSMutableArray *children = [NSMutableArray array];
+    NSScrollView *scrollView = [self enclosingScrollView];
+    NSRect visibleRect = [scrollView documentView] == self ? [scrollView 
documentVisibleRect] : [self visibleRect];
+    NSUInteger i, count = [self numberOfIcons];
+    for (i = 0; i < count; i++) {
+        NSUInteger r, c;
+        if ([self _getGridRow:&r column:&c ofIndex:i] && 
NSIntersectsRect([self _rectOfIconInRow:r column:c], visibleRect))
+            [children addObject:[FVAccessibilityIconElement elementWithIndex:i 
parent:self]];
+    }
+    return NSAccessibilityUnignoredChildren(children);
+}
+
 - (NSArray *)accessibilitySelectedChildren {
     NSMutableArray *children = [NSMutableArray array];
     NSUInteger i = [_selectionIndexes firstIndex];
@@ -4651,7 +4664,7 @@
 - (NSArray *)accessibilityAttributeNames {
     static NSArray *attributes = nil;
     if (attributes == nil)
-        attributes = [[[super accessibilityAttributeNames] 
arrayByAddingObjectsFromArray:[NSArray 
arrayWithObjects:NSAccessibilityChildrenAttribute, 
NSAccessibilitySelectedChildrenAttribute, NSAccessibilityRowCountAttribute, 
NSAccessibilityColumnCountAttribute, NSAccessibilityOrientationAttribute, 
NSAccessibilityOrderedByRowAttribute, nil]] retain];
+        attributes = [[[super accessibilityAttributeNames] 
arrayByAddingObjectsFromArray:[NSArray 
arrayWithObjects:NSAccessibilityChildrenAttribute, 
NSAccessibilityVisibleChildrenAttribute, 
NSAccessibilitySelectedChildrenAttribute, NSAccessibilityRowCountAttribute, 
NSAccessibilityColumnCountAttribute, NSAccessibilityOrientationAttribute, 
NSAccessibilityOrderedByRowAttribute, nil]] retain];
     return attributes;
 }
 
@@ -4661,19 +4674,11 @@
     } else if ([attribute 
isEqualToString:NSAccessibilityRoleDescriptionAttribute]) {
         return NSAccessibilityRoleDescription(NSAccessibilityGridRole, nil);
     } else if ([attribute isEqualToString:NSAccessibilityChildrenAttribute]) {
-        NSMutableArray *children = [NSMutableArray array];
-        NSUInteger i, count = [self numberOfIcons];
-        for (i = 0; i < count; i++)
-            [children addObject:[FVAccessibilityIconElement elementWithIndex:i 
parent:self]];
-        return NSAccessibilityUnignoredChildren(children);
+        return [self accessibilityChildren];
+    } else if ([attribute 
isEqualToString:NSAccessibilityVisibleChildrenAttribute]) {
+        return [self accessibilityVisibleChildren];
     } else if ([attribute 
isEqualToString:NSAccessibilitySelectedChildrenAttribute]) {
-        NSMutableArray *children = [NSMutableArray array];
-        NSUInteger i = [_selectionIndexes firstIndex];
-        while (i != NSNotFound) {
-            [children addObject:[FVAccessibilityIconElement elementWithIndex:i 
parent:self]];
-            i = [_selectionIndexes indexGreaterThanIndex:i];
-        }
-        return NSAccessibilityUnignoredChildren(children);
+        return [self accessibilitySelectedChildren];
     } else if ([attribute isEqualToString:NSAccessibilityRowCountAttribute]) {
         return [NSNumber numberWithInteger:_numberOfRows];
     } else if ([attribute 
isEqualToString:NSAccessibilityColumnCountAttribute]) {

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
Bibdesk-commit mailing list
Bibdesk-commit@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bibdesk-commit

Reply via email to