This should really fix #3393. Apparently I'm more sleep-deprived than I thought.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29096 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Rene Gollent 2009-01-31 03:21:23 +00:00
parent fee5fc34ff
commit b8d65a49d8

View File

@ -4360,7 +4360,7 @@ BPoseView::MoveSelectionInto(Model *destFolder, BContainerWindow *srcWindow,
void
BPoseView::MoveSelectionInto(Model *destFolder, BContainerWindow *srcWindow,
BContainerWindow *destWindow, uint32 buttons, BPoint loc, bool forceCopy,
bool forceMove, bool createLink, bool relativeLink)
bool forceMove, bool createLink, bool relativeLink, BPoint clickPt, bool dropOnGrid)
{
AutoLock<BWindow> lock(srcWindow);
if (!lock)
@ -4404,8 +4404,7 @@ BPoseView::MoveSelectionInto(Model *destFolder, BContainerWindow *srcWindow,
if (targetView->ViewMode() == kListMode) // can't move in list view
return;
bool dropOnGrid = (modifiers() & B_COMMAND_KEY) != 0;
BPoint delta = loc - clickPt;
int32 count = targetView->fSelectionList->CountItems();
for (int32 index = 0; index < count; index++) {
BPose *pose = targetView->fSelectionList->ItemAt(index);
@ -4415,19 +4414,19 @@ BPoseView::MoveSelectionInto(Model *destFolder, BContainerWindow *srcWindow,
// need to do this because bsearch uses top of pose
// to locate pose to remove
targetView->RemoveFromVSList(pose);
BPoint location (pose->Location() + delta);
BRect oldBounds(pose->CalcRect(targetView));
if (dropOnGrid)
loc = targetView->PinToGrid(loc, targetView->fGrid, targetView->fOffset);
location = targetView->PinToGrid(location, targetView->fGrid, targetView->fOffset);
pose->MoveTo(loc, targetView);
pose->MoveTo(location, targetView);
targetView->RemoveFromExtent(oldBounds);
targetView->AddToExtent(pose->CalcRect(targetView));
targetView->RemoveFromExtent(oldBounds);
targetView->AddToExtent(pose->CalcRect(targetView));
// remove and reinsert pose to keep VSlist sorted
targetView->AddToVSList(pose);
}
// remove and reinsert pose to keep VSlist sorted
targetView->AddToVSList(pose);
}
return;
}
@ -4521,7 +4520,9 @@ BPoseView::MoveSelectionTo(BPoint dropPt, BPoint clickPt,
return;
uint32 buttons = (uint32)window->CurrentMessage()->FindInt32("buttons");
MoveSelectionInto(TargetModel(), srcWindow, window, buttons, dropPt, false);
bool pinToGrid = (modifiers() & B_COMMAND_KEY) != 0;
MoveSelectionInto(TargetModel(), srcWindow, window, buttons, dropPt,
false, false, false, false, clickPt, pinToGrid);
}