diff --git a/PBCommitList.m b/PBCommitList.m index 9f76422..264b5e2 100644 --- a/PBCommitList.m +++ b/PBCommitList.m @@ -61,8 +61,9 @@ int row = [self rowAtPoint:location]; int column = [self columnAtPoint:location]; PBGitRevisionCell *cell = (PBGitRevisionCell *)[self preparedCellAtColumn:column row:row]; + NSRect cellFrame = [self frameOfCellAtColumn:column row:row]; - int index = [cell indexAtX:location.x]; + int index = [cell indexAtX:(location.x - cellFrame.origin.x)]; if (index == -1) return [super dragImageForRowsWithIndexes:dragRows tableColumns:tableColumns event:dragEvent offset:dragImageOffset]; diff --git a/PBGitRevisionCell.m b/PBGitRevisionCell.m index 98f978b..579168b 100644 --- a/PBGitRevisionCell.m +++ b/PBGitRevisionCell.m @@ -283,7 +283,7 @@ if (!contextMenuDelegate) return [self menu]; - int i = [self indexAtX:[view convertPointFromBase:[event locationInWindow]].x]; + int i = [self indexAtX:[view convertPointFromBase:[event locationInWindow]].x - rect.origin.x]; if (i < 0) return [self menu]; diff --git a/PBRefController.m b/PBRefController.m index 7c1ac62..f89f434 100644 --- a/PBRefController.m +++ b/PBRefController.m @@ -94,12 +94,14 @@ NSPoint location = [tv convertPointFromBase:[(PBCommitList *)tv mouseDownPoint]]; int row = [tv rowAtPoint:location]; int column = [tv columnAtPoint:location]; - if (column != 0) + int subjectColumn = [tv columnWithIdentifier:@"SubjectColumn"]; + if (column != subjectColumn) return NO; PBGitRevisionCell *cell = (PBGitRevisionCell *)[tv preparedCellAtColumn:column row:row]; + NSRect cellFrame = [tv frameOfCellAtColumn:column row:row]; - int index = [cell indexAtX:location.x]; + int index = [cell indexAtX:(location.x - cellFrame.origin.x)]; if (index == -1) return NO;