Kaydet (Commit) 73a9e800 authored tarafından Armin Le Grand's avatar Armin Le Grand

i122497 Filter D&D flags for calc D&D

üst ff8c8d3c
...@@ -3565,6 +3565,13 @@ sal_Int8 ScGridWindow::AcceptDrop( const AcceptDropEvent& rEvt ) ...@@ -3565,6 +3565,13 @@ sal_Int8 ScGridWindow::AcceptDrop( const AcceptDropEvent& rEvt )
{ {
sal_Int8 nMyAction = rEvt.mnAction; 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 || if ( !rData.pDrawTransfer ||
!IsMyModel(rData.pDrawTransfer->GetDragSourceView()) ) // drawing within the document !IsMyModel(rData.pDrawTransfer->GetDragSourceView()) ) // drawing within the document
if ( rEvt.mbDefault && nMyAction == DND_ACTION_MOVE ) if ( rEvt.mbDefault && nMyAction == DND_ACTION_MOVE )
...@@ -3573,7 +3580,7 @@ sal_Int8 ScGridWindow::AcceptDrop( const AcceptDropEvent& rEvt ) ...@@ -3573,7 +3580,7 @@ sal_Int8 ScGridWindow::AcceptDrop( const AcceptDropEvent& rEvt )
ScDocument* pThisDoc = pViewData->GetDocument(); ScDocument* pThisDoc = pViewData->GetDocument();
SdrObject* pHitObj = pThisDoc->GetObjectAtPoint( SdrObject* pHitObj = pThisDoc->GetObjectAtPoint(
pViewData->GetTabNo(), PixelToLogic(rEvt.maPosPixel) ); 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) if ( IsDropFormatSupported(SOT_FORMATSTR_ID_SVXB)
|| IsDropFormatSupported(SOT_FORMAT_GDIMETAFILE) || IsDropFormatSupported(SOT_FORMAT_GDIMETAFILE)
...@@ -4191,8 +4198,9 @@ sal_Int8 ScGridWindow::ExecuteDrop( const ExecuteDropEvent& rEvt ) ...@@ -4191,8 +4198,9 @@ sal_Int8 ScGridWindow::ExecuteDrop( const ExecuteDropEvent& rEvt )
} }
Point aLogicPos = PixelToLogic(aPos); 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(); sal_uInt16 nFlags = rData.pDrawTransfer->GetDragSourceFlags();
...@@ -4228,8 +4236,6 @@ sal_Int8 ScGridWindow::ExecuteDrop( const ExecuteDropEvent& rEvt ) ...@@ -4228,8 +4236,6 @@ sal_Int8 ScGridWindow::ExecuteDrop( const ExecuteDropEvent& rEvt )
} }
} }
sal_Bool bIsLink = ( rEvt.mnAction == DND_ACTION_LINK );
ScDocument* pThisDoc = pViewData->GetDocument(); ScDocument* pThisDoc = pViewData->GetDocument();
SdrObject* pHitObj = pThisDoc->GetObjectAtPoint( pViewData->GetTabNo(), PixelToLogic(aPos) ); SdrObject* pHitObj = pThisDoc->GetObjectAtPoint( pViewData->GetTabNo(), PixelToLogic(aPos) );
if ( pHitObj && bIsLink ) if ( pHitObj && bIsLink )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment