Revision: 26943 http://sourceforge.net/p/bibdesk/svn/26943 Author: hofman Date: 2021-09-22 22:08:36 +0000 (Wed, 22 Sep 2021) Log Message: ----------- Never use -[NSTableView editedRow]
Modified Paths: -------------- trunk/bibdesk/BDSKBookmarkController.m trunk/bibdesk/BDSKCustomCiteDrawerController.m trunk/bibdesk/BDSKDocumentInfoWindowController.m trunk/bibdesk/BDSKEditor.m trunk/bibdesk/BDSKSearchBookmarkController.m trunk/bibdesk/BibPref_Crossref.m trunk/bibdesk/BibPref_Defaults.m Modified: trunk/bibdesk/BDSKBookmarkController.m =================================================================== --- trunk/bibdesk/BDSKBookmarkController.m 2021-09-22 21:55:32 UTC (rev 26942) +++ trunk/bibdesk/BDSKBookmarkController.m 2021-09-22 22:08:36 UTC (rev 26943) @@ -305,7 +305,8 @@ } - (void)endEditing { - if ([outlineView editedRow] && [[self window] makeFirstResponder:outlineView] == NO) + id firstResponder = [[self window] firstResponder]; + if ([firstResponder isKindOfClass:[NSTextView class]] && [outlineView rowForView:firstResponder] != -1 && [[self window] makeFirstResponder:outlineView] == NO) [[self window] endEditingFor:nil]; } Modified: trunk/bibdesk/BDSKCustomCiteDrawerController.m =================================================================== --- trunk/bibdesk/BDSKCustomCiteDrawerController.m 2021-09-22 21:55:32 UTC (rev 26942) +++ trunk/bibdesk/BDSKCustomCiteDrawerController.m 2021-09-22 22:08:36 UTC (rev 26943) @@ -121,7 +121,8 @@ if(row == -1) return; - if ([tableView editedRow] == row) + id firstResponder = [[tableView window] firstResponder]; + if ([firstResponder isKindOfClass:[NSTextView class]] && [tableView rowForView:firstResponder] == row) [[tableView window] makeFirstResponder:tableView]; [customStringArray removeObjectAtIndex:row]; [tableView reloadData]; Modified: trunk/bibdesk/BDSKDocumentInfoWindowController.m =================================================================== --- trunk/bibdesk/BDSKDocumentInfoWindowController.m 2021-09-22 21:55:32 UTC (rev 26942) +++ trunk/bibdesk/BDSKDocumentInfoWindowController.m 2021-09-22 22:08:36 UTC (rev 26943) @@ -104,10 +104,14 @@ - (IBAction)dismiss:(id)sender{ [self finalizeChangesIgnoringEdit:[sender tag] == NSCancelButton]; // commit edit before reloading - if ([sender tag] == NSOKButton && [tableView editedRow] != -1) - NSBeep(); - else - [super dismiss:sender]; + if ([sender tag] == NSOKButton) { + id firstResponder = [[tableView window] firstResponder]; + if ([firstResponder isKindOfClass:[NSTextView class]] && [tableView rowForView:firstResponder] != -1) { + NSBeep(); + return; + } + } + [super dismiss:sender]; } - (IBAction)addRemoveKey:(id)sender{ Modified: trunk/bibdesk/BDSKEditor.m =================================================================== --- trunk/bibdesk/BDSKEditor.m 2021-09-22 21:55:32 UTC (rev 26942) +++ trunk/bibdesk/BDSKEditor.m 2021-09-22 22:08:36 UTC (rev 26943) @@ -3387,14 +3387,12 @@ NSTextView *fieldEditor = (NSTextView *)[[tableView window] firstResponder]; NSString *editedTitle = nil; NSArray *selection = nil; - if ([fieldEditor isKindOfClass:[NSTextView class]]) { - NSInteger editedRow = [tableView rowForView:fieldEditor]; - if (editedRow != -1) { - selection = [fieldEditor selectedRanges]; - editedTitle = [[fields objectAtIndex:editedRow] retain]; - if ([[self window] makeFirstResponder:[self window]] == NO) - [NSException raise:NSInternalInconsistencyException format:@"Failed to commit edits in %s, trouble ahead", __func__]; - } + NSInteger editedRow = [self editedRow]; + if (editedRow != -1) { + selection = [fieldEditor selectedRanges]; + editedTitle = [[fields objectAtIndex:editedRow] retain]; + if ([[self window] makeFirstResponder:[self window]] == NO) + [NSException raise:NSInternalInconsistencyException format:@"Failed to commit edits in %s, trouble ahead", __func__]; } if (newFields && [fields isEqualToArray:newFields] == NO) { @@ -3426,10 +3424,10 @@ // restore the edited cell and its selection if (editedTitle) { - NSUInteger editedRow = [fields indexOfObject:editedTitle]; - if (editedRow != NSNotFound && [tableView editedRow] != (NSInteger)editedRow) { - [tableView editColumn:1 row:editedRow withEvent:nil select:NO]; - fieldEditor = (NSTextView *)[[tableView viewAtColumn:1 row:editedRow makeIfNecessary:NO] currentEditor]; + NSUInteger editingRow = [fields indexOfObject:editedTitle]; + if (editedRow != NSNotFound && [self editedRow] != (NSInteger)editingRow) { + [tableView editColumn:1 row:editingRow withEvent:nil select:NO]; + fieldEditor = (NSTextView *)[[tableView viewAtColumn:1 row:editingRow makeIfNecessary:NO] currentEditor]; if (validRanges(selection, [[fieldEditor string] length])) [fieldEditor setSelectedRanges:selection]; } Modified: trunk/bibdesk/BDSKSearchBookmarkController.m =================================================================== --- trunk/bibdesk/BDSKSearchBookmarkController.m 2021-09-22 21:55:32 UTC (rev 26942) +++ trunk/bibdesk/BDSKSearchBookmarkController.m 2021-09-22 22:08:36 UTC (rev 26943) @@ -269,7 +269,8 @@ } - (void)endEditing { - if ([outlineView editedRow] && [[self window] makeFirstResponder:outlineView] == NO) + id firstResponder = [[self window] firstResponder]; + if ([firstResponder isKindOfClass:[NSTextView class]] && [outlineView rowForView:firstResponder] != -1 && [[self window] makeFirstResponder:outlineView] == NO) [[self window] endEditingFor:nil]; } Modified: trunk/bibdesk/BibPref_Crossref.m =================================================================== --- trunk/bibdesk/BibPref_Crossref.m 2021-09-22 21:55:32 UTC (rev 26942) +++ trunk/bibdesk/BibPref_Crossref.m 2021-09-22 22:08:36 UTC (rev 26943) @@ -102,7 +102,8 @@ NSInteger row = [tableView selectedRow]; if(row != -1){ - if ([tableView editedRow] != -1) + id firstResponder = [[tableView window] firstResponder]; + if ([firstResponder isKindOfClass:[NSTextView class]] && [tableView rowForView:firstResponder] != -1) [[[self view] window] makeFirstResponder:tableView]; [typesArray removeObjectAtIndex:row]; [self updateDuplicateTypes]; Modified: trunk/bibdesk/BibPref_Defaults.m =================================================================== --- trunk/bibdesk/BibPref_Defaults.m 2021-09-22 21:55:32 UTC (rev 26942) +++ trunk/bibdesk/BibPref_Defaults.m 2021-09-22 22:08:36 UTC (rev 26943) @@ -556,7 +556,8 @@ NSInteger row = [defaultFieldsTableView selectedRow]; if(row != -1){ - if([defaultFieldsTableView editedRow] != -1) + id firstResponder = [[defaultFieldsTableView window] firstResponder]; + if ([firstResponder isKindOfClass:[NSTextView class]] && [defaultFieldsTableView rowForView:firstResponder] != -1) [[defaultFieldsTableView window] makeFirstResponder:nil]; [customFieldsSet removeObject:[[customFieldsArray objectAtIndex:row] objectForKey:FIELD_KEY]]; [customFieldsArray removeObjectAtIndex:row]; 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