[haiku-commits] r36786 - haiku/trunk/src/kits/tracker

  • From: axeld@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 11 May 2010 09:46:19 +0200 (CEST)

Author: axeld
Date: 2010-05-11 09:46:19 +0200 (Tue, 11 May 2010)
New Revision: 36786
Changeset: http://dev.haiku-os.org/changeset/36786/haiku

Modified:
   haiku/trunk/src/kits/tracker/PoseView.cpp
Log:
* Never choose a target pose in UpdateDropTarget() that is part of the currently
  dragged selection. This fixes the context menu popping up when you try to
  move around an icon a few pixels only.


Modified: haiku/trunk/src/kits/tracker/PoseView.cpp
===================================================================
--- haiku/trunk/src/kits/tracker/PoseView.cpp   2010-05-10 17:26:50 UTC (rev 
36785)
+++ haiku/trunk/src/kits/tracker/PoseView.cpp   2010-05-11 07:46:19 UTC (rev 
36786)
@@ -1732,7 +1732,7 @@
                if (viewBounds.Intersects(poseBounds))
                        SynchronousUpdate(poseBounds);
        }
-       
+
        if (indexPtr)
                *indexPtr = poseIndex;
 }
@@ -4637,7 +4637,7 @@
                return;
 
        ASSERT(srcWindow->PoseView()->TargetModel());
-       
+
        if (srcWindow->PoseView()->SelectionList()->CountItems() == 0)
                return;
 
@@ -6184,7 +6184,7 @@
                        SelectPose(pose, index);
                        break;
                }
-               
+
                case B_FUNCTION_KEY:
                case B_INSERT:
                        break;
@@ -8962,11 +8962,14 @@
 
        int32 index;
        BPose *targetPose = FindPose(mouseLoc, &index);
+       if (targetPose != NULL && DragSelectionContains(targetPose, 
dragMessage))
+               targetPose = NULL;
 
        if ((fCursorCheck && targetPose == fDropTarget)
-               || (trackingContextMenu && !targetPose))
+               || (trackingContextMenu && !targetPose)) {
                // no change
                return false;
+       }
 
        fCursorCheck = true;
        if (fDropTarget && !DragSelectionContains(fDropTarget, dragMessage))
@@ -8980,7 +8983,8 @@
                targetModel = targetPose->TargetModel();
        Model tmpTarget;
        if (targetModel && targetModel->IsSymLink()
-               && tmpTarget.SetTo(targetPose->TargetModel()->EntryRef(), true, 
true) == B_OK)
+               && tmpTarget.SetTo(targetPose->TargetModel()->EntryRef(), true, 
true)
+                       == B_OK)
                targetModel = &tmpTarget;
 
        bool ignoreTypes = (modifiers() & B_CONTROL_KEY) != 0;
@@ -9002,7 +9006,7 @@
 
        entry_ref srcRef;
        if (targetModel->IsDirectory() && dragMessage->HasRef("refs")
-                       && dragMessage->FindRef("refs", &srcRef) == B_OK) {
+               && dragMessage->FindRef("refs", &srcRef) == B_OK) {
                Model srcModel (&srcRef);
                if (!CheckDevicesEqual(&srcRef, targetModel)
                        && !srcModel.IsVolume()


Other related posts:

  • » [haiku-commits] r36786 - haiku/trunk/src/kits/tracker - axeld