diff options
author | Armin Le Grand <alg@apache.org> | 2013-06-19 11:23:41 +0000 |
---|---|---|
committer | Armin Le Grand <alg@apache.org> | 2013-06-19 11:23:41 +0000 |
commit | 73a9e800ff4f61058750acb6840af780a0505b49 (patch) | |
tree | e031dd5f20c055cad856e3e31755cfd262708206 /sc | |
parent | ff8c8d3c169bb1adf489bca080a91fd5f7bea95f (diff) |
i122497 Filter D&D flags for calc D&D
Notes
Notes:
merged as: aaf3ff8adf0821090ba4cc9043e7f3a1ce1f6033
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/ui/view/gridwin.cxx | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index 108525c1cd4a..e397dfa21560 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -3565,6 +3565,13 @@ sal_Int8 ScGridWindow::AcceptDrop( const AcceptDropEvent& rEvt ) { 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 if ( rEvt.mbDefault && nMyAction == DND_ACTION_MOVE ) @@ -3573,7 +3580,7 @@ sal_Int8 ScGridWindow::AcceptDrop( const AcceptDropEvent& rEvt ) 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( const ExecuteDropEvent& rEvt ) } 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( const ExecuteDropEvent& rEvt ) } } - sal_Bool bIsLink = ( rEvt.mnAction == DND_ACTION_LINK ); - ScDocument* pThisDoc = pViewData->GetDocument(); SdrObject* pHitObj = pThisDoc->GetObjectAtPoint( pViewData->GetTabNo(), PixelToLogic(aPos) ); if ( pHitObj && bIsLink ) |