You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by al...@apache.org on 2013/06/19 13:23:42 UTC

svn commit: r1494553 - /openoffice/trunk/main/sc/source/ui/view/gridwin.cxx

Author: alg
Date: Wed Jun 19 11:23:41 2013
New Revision: 1494553

URL: http://svn.apache.org/r1494553
Log:
i122497 Filter D&D flags for calc D&D

Modified:
    openoffice/trunk/main/sc/source/ui/view/gridwin.cxx

Modified: openoffice/trunk/main/sc/source/ui/view/gridwin.cxx
URL: http://svn.apache.org/viewvc/openoffice/trunk/main/sc/source/ui/view/gridwin.cxx?rev=1494553&r1=1494552&r2=1494553&view=diff
==============================================================================
--- openoffice/trunk/main/sc/source/ui/view/gridwin.cxx (original)
+++ openoffice/trunk/main/sc/source/ui/view/gridwin.cxx Wed Jun 19 11:23:41 2013
@@ -3564,6 +3564,13 @@ sal_Int8 ScGridWindow::AcceptDrop( const
 		else
 		{
 			sal_Int8 nMyAction = rEvt.mnAction;
+			
+			// clear DND_ACTION_LINK when other actions are set. The usage below cannot handle
+			// multiple set values
+			if((nMyAction & DND_ACTION_LINK) && (nMyAction & (DND_ACTION_COPYMOVE)))
+			{
+			    nMyAction &= ~DND_ACTION_LINK;
+			}
 
 			if ( !rData.pDrawTransfer ||
 					!IsMyModel(rData.pDrawTransfer->GetDragSourceView()) )		// drawing within the document
@@ -3573,7 +3580,7 @@ sal_Int8 ScGridWindow::AcceptDrop( const
 			ScDocument* pThisDoc = pViewData->GetDocument();
 			SdrObject* pHitObj = pThisDoc->GetObjectAtPoint(
 						pViewData->GetTabNo(), PixelToLogic(rEvt.maPosPixel) );
-			if ( pHitObj && nMyAction == DND_ACTION_LINK && !rData.pDrawTransfer )
+			if ( pHitObj && nMyAction == DND_ACTION_LINK ) // && !rData.pDrawTransfer )
 			{
 				if ( IsDropFormatSupported(SOT_FORMATSTR_ID_SVXB)
 					|| IsDropFormatSupported(SOT_FORMAT_GDIMETAFILE)
@@ -4191,8 +4198,9 @@ sal_Int8 ScGridWindow::ExecuteDrop( cons
 	}
 
 	Point aLogicPos = PixelToLogic(aPos);
+	sal_Bool bIsLink = ( rEvt.mnAction == DND_ACTION_LINK );
 
-	if (rData.pDrawTransfer)
+	if (!bIsLink && rData.pDrawTransfer)
 	{
 		sal_uInt16 nFlags = rData.pDrawTransfer->GetDragSourceFlags();
 
@@ -4228,8 +4236,6 @@ sal_Int8 ScGridWindow::ExecuteDrop( cons
 		}
 	}
 
-	sal_Bool bIsLink = ( rEvt.mnAction == DND_ACTION_LINK );
-
 	ScDocument* pThisDoc = pViewData->GetDocument();
 	SdrObject* pHitObj = pThisDoc->GetObjectAtPoint( pViewData->GetTabNo(), PixelToLogic(aPos) );
 	if ( pHitObj && bIsLink )