Author: rfm
Date: Mon Nov  2 17:02:27 2015
New Revision: 39118

URL: http://svn.gna.org/viewcvs/gnustep?rev=39118&view=rev
Log:
possible fix for ivan's StepOPML editor problem

Modified:
    libs/gui/trunk/ChangeLog
    libs/gui/trunk/Source/NSOutlineView.m

Modified: libs/gui/trunk/ChangeLog
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/gui/trunk/ChangeLog?rev=39118&r1=39117&r2=39118&view=diff
==============================================================================
--- libs/gui/trunk/ChangeLog    (original)
+++ libs/gui/trunk/ChangeLog    Mon Nov  2 17:02:27 2015
@@ -1,3 +1,11 @@
+2015-11-02  Richard Frith-Macdonald <[email protected]>
+
+       * Source/NSOutlineView.m:
+       The _expandedItems array needs to be managed using tests for identical
+       members rather than equal members, to handle the case where a view has
+       multiple equal members (we don't want all equal items expanded, only
+       the exact item.
+
 2015-11-01  Richard Frith-Macdonald <[email protected]>
 
        * Source/GNUmakefile.preamble:

Modified: libs/gui/trunk/Source/NSOutlineView.m
URL: 
http://svn.gna.org/viewcvs/gnustep/libs/gui/trunk/Source/NSOutlineView.m?rev=39118&r1=39117&r2=39118&view=diff
==============================================================================
--- libs/gui/trunk/Source/NSOutlineView.m       (original)
+++ libs/gui/trunk/Source/NSOutlineView.m       Mon Nov  2 17:02:27 2015
@@ -432,7 +432,11 @@
       return YES;
     }
   // Check the array to determine if it is expanded.
-  return([_expandedItems containsObject: item]);
+  if ([_expandedItems indexOfObjectIdenticalTo: item] == NSNotFound)
+    {
+      return NO;
+    }
+  return YES;
 }
 
 /**
@@ -2078,7 +2082,7 @@
   // close the item...
   if (item != nil)
     {
-      [_expandedItems removeObject: item];
+      [_expandedItems removeObjectIdenticalTo: item];
     }
 
   // For the close method it doesn't matter what order they are
@@ -2167,7 +2171,7 @@
       [self _removeChildren: child];
       NSMapRemove(_itemDict, child);
       [_items removeObject: child];
-      [_expandedItems removeObject: child];
+      [_expandedItems removeObjectIdenticalTo: child];
     }
   [anarray removeAllObjects];
   [self _noteNumberOfRowsChangedBelowItem: startitem by: -numChildren];


_______________________________________________
Gnustep-cvs mailing list
[email protected]
https://mail.gna.org/listinfo/gnustep-cvs

Reply via email to