summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorKai Ahrens <ka@openoffice.org>2002-12-11 13:54:59 +0000
committerKai Ahrens <ka@openoffice.org>2002-12-11 13:54:59 +0000
commit755305e55980e8d4e3b210ff7a13d50af9370206 (patch)
tree3588d5fe3d1703d079f09c438355724067065aca /sd
parent2c2b6cfa0ab3945afc8b492d77f633ab01c12d08 (diff)
#95150#: optimized internal D&D from Navigator
Diffstat (limited to 'sd')
-rw-r--r--sd/inc/sdmod.hxx12
-rw-r--r--sd/source/ui/app/sdmod.cxx8
-rw-r--r--sd/source/ui/app/sdxfer.cxx39
-rw-r--r--sd/source/ui/dlg/makefile.mk11
-rw-r--r--sd/source/ui/dlg/sdtreelb.cxx102
-rw-r--r--sd/source/ui/func/sdundogr.cxx6
-rw-r--r--sd/source/ui/inc/sdtreelb.hxx39
-rw-r--r--sd/source/ui/inc/sdxfer.hxx7
-rw-r--r--sd/source/ui/view/sdview2.cxx33
9 files changed, 182 insertions, 75 deletions
diff --git a/sd/inc/sdmod.hxx b/sd/inc/sdmod.hxx
index 049e1024ed52..49410d36b42d 100644
--- a/sd/inc/sdmod.hxx
+++ b/sd/inc/sdmod.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: sdmod.hxx,v $
*
- * $Revision: 1.16 $
+ * $Revision: 1.17 $
*
- * last change: $Author: af $ $Date: 2002-11-28 10:48:49 $
+ * last change: $Author: ka $ $Date: 2002-12-11 14:54:56 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -129,8 +129,6 @@ protected:
SvxSearchItem* pSearchItem;
SvNumberFormatter* pNumberFormatter;
SvStorageRef xOptionStorage;
- const SdDrawDocShell* pCurrentNavigatorDragDocShell;
- NavigatorDragType eCurrentNavigatorDragType;
BOOL bAutoSave;
BOOL bWaterCan;
SfxErrorHandler* mpErrorHdl;
@@ -162,12 +160,6 @@ public:
SdOptions* GetSdOptions(DocumentType eDocType);
SvStorageStreamRef GetOptionStream( const String& rOptionName, SdOptionStreamMode eMode );
- const SdDrawDocShell* GetCurrentNavigatorDragDocShell() const { return pCurrentNavigatorDragDocShell; }
- void SetCurrentNavigatorDragDocShell( const SdDrawDocShell* pDocShell ) { pCurrentNavigatorDragDocShell = pDocShell; }
-
- NavigatorDragType GetCurrentNavigatorDragType() const { return eCurrentNavigatorDragType; }
- void SetCurrentNavigatorDragType( NavigatorDragType eDragType ) { eCurrentNavigatorDragType = eDragType; }
-
BOOL GetWaterCan() const { return bWaterCan; }
void SetWaterCan( BOOL bWC ) { bWaterCan = bWC; }
diff --git a/sd/source/ui/app/sdmod.cxx b/sd/source/ui/app/sdmod.cxx
index ec532eb1ae69..09d499947dbb 100644
--- a/sd/source/ui/app/sdmod.cxx
+++ b/sd/source/ui/app/sdmod.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: sdmod.cxx,v $
*
- * $Revision: 1.17 $
+ * $Revision: 1.18 $
*
- * last change: $Author: cl $ $Date: 2002-09-12 15:25:07 $
+ * last change: $Author: ka $ $Date: 2002-12-11 14:54:56 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -163,9 +163,7 @@ SdModule::SdModule(SvFactory* pDrawObjFact, SvFactory* pGraphicObjFact)
pImpressOptions(NULL),
pDrawOptions(NULL),
pSearchItem(NULL),
- pNumberFormatter( NULL ),
- eCurrentNavigatorDragType( NAVIGATOR_DRAGTYPE_NONE ),
- pCurrentNavigatorDragDocShell( NULL )
+ pNumberFormatter( NULL )
{
SetName( UniString::CreateFromAscii( RTL_CONSTASCII_STRINGPARAM( "StarDraw" ) ) ); // Nicht uebersetzen!
pSearchItem = new SvxSearchItem(ITEMID_SEARCH);
diff --git a/sd/source/ui/app/sdxfer.cxx b/sd/source/ui/app/sdxfer.cxx
index 1e682a6109dd..35ca228f8af2 100644
--- a/sd/source/ui/app/sdxfer.cxx
+++ b/sd/source/ui/app/sdxfer.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: sdxfer.cxx,v $
*
- * $Revision: 1.26 $
+ * $Revision: 1.27 $
*
- * last change: $Author: thb $ $Date: 2002-11-19 18:02:27 $
+ * last change: $Author: ka $ $Date: 2002-12-11 14:54:57 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -715,6 +715,41 @@ void SdTransferable::SetPageBookmarks( const List& rPageBookmarks, BOOL bPersist
// -----------------------------------------------------------------------------
+sal_Int64 SAL_CALL SdTransferable::getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw( ::com::sun::star::uno::RuntimeException )
+{
+ sal_Int64 nRet;
+
+ if( ( rId.getLength() == 16 ) &&
+ ( 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), rId.getConstArray(), 16 ) ) )
+ {
+ nRet = (sal_Int64) this;
+ }
+ else
+ nRet = 0;
+
+ return nRet;
+}
+
+// -----------------------------------------------------------------------------
+
+const ::com::sun::star::uno::Sequence< sal_Int8 >& SdTransferable::getUnoTunnelId()
+{
+ static ::com::sun::star::uno::Sequence< sal_Int8 > aSeq;
+
+ if( !aSeq.getLength() )
+ {
+ static osl::Mutex aCreateMutex;
+ osl::MutexGuard aGuard( aCreateMutex );
+
+ aSeq.realloc( 16 );
+ rtl_createUuid( reinterpret_cast< sal_uInt8* >( aSeq.getArray() ), 0, sal_True );
+ }
+
+ return aSeq;
+}
+
+// -----------------------------------------------------------------------------
+
SdTransferable* SdTransferable::getImplementation( const Reference< XInterface >& rxData ) throw()
{
try
diff --git a/sd/source/ui/dlg/makefile.mk b/sd/source/ui/dlg/makefile.mk
index 17036e07170a..515776837ebd 100644
--- a/sd/source/ui/dlg/makefile.mk
+++ b/sd/source/ui/dlg/makefile.mk
@@ -2,9 +2,9 @@
#
# $RCSfile: makefile.mk,v $
#
-# $Revision: 1.14 $
+# $Revision: 1.15 $
#
-# last change: $Author: af $ $Date: 2002-09-11 13:28:45 $
+# last change: $Author: ka $ $Date: 2002-12-11 14:54:57 $
#
# The Contents of this file are made available subject to the terms of
# either of the following licenses
@@ -162,9 +162,10 @@ SLOFILES = \
$(SLO)$/TemplateScanner.obj
EXCEPTIONSFILES= \
- $(SLO)$/filedlg.obj \
- $(SLO)$/dlgass.obj \
- $(SLO)$/TemplateScanner.obj
+ $(SLO)$/filedlg.obj \
+ $(SLO)$/dlgass.obj \
+ $(SLO)$/TemplateScanner.obj \
+ $(SLO)$/sdtreelb.obj
# --- Tagets -------------------------------------------------------
diff --git a/sd/source/ui/dlg/sdtreelb.cxx b/sd/source/ui/dlg/sdtreelb.cxx
index 0510526f6828..bc392f353d2a 100644
--- a/sd/source/ui/dlg/sdtreelb.cxx
+++ b/sd/source/ui/dlg/sdtreelb.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: sdtreelb.cxx,v $
*
- * $Revision: 1.15 $
+ * $Revision: 1.16 $
*
- * last change: $Author: ka $ $Date: 2002-12-06 16:51:17 $
+ * last change: $Author: ka $ $Date: 2002-12-11 14:54:57 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -59,28 +59,24 @@
*
************************************************************************/
-#pragma hdrstop
-
-#include <tools/urlobj.hxx>
-
-#ifndef SVTOOLS_URIHELPER_HXX
-#include <svtools/urihelper.hxx>
+#ifndef _SOT_FORMATS_HXX //autogen
+#include <sot/formats.hxx>
+#endif
+#ifndef _SVSTOR_HXX //autogen
+#include <so3/svstor.hxx>
#endif
#ifndef _SV_MSGBOX_HXX //autogen
#include <vcl/msgbox.hxx>
#endif
+#ifndef SVTOOLS_URIHELPER_HXX
+#include <svtools/urihelper.hxx>
+#endif
#ifndef _SVDITER_HXX //autogen
#include <svx/svditer.hxx>
#endif
-#ifndef _SVSTOR_HXX //autogen
-#include <so3/svstor.hxx>
-#endif
#ifndef _SFXDOCFILE_HXX //autogen
#include <sfx2/docfile.hxx>
#endif
-#ifndef _SOT_FORMATS_HXX //autogen
-#include <sot/formats.hxx>
-#endif
#ifndef _SVDOOLE2_HXX //autogen
#include <svx/svdoole2.hxx>
#endif
@@ -134,6 +130,74 @@ void SdPageObjsTLB::SdPageObjsTransferable::DragFinished( sal_Int8 nDropAction )
mrParent.DragFinished( nDropAction );
}
+// -----------------------------------------------------------------------------
+
+SdDrawDocShell& SdPageObjsTLB::SdPageObjsTransferable::GetDocShell() const
+{
+ return mrDocShell;
+}
+
+// -----------------------------------------------------------------------------
+
+NavigatorDragType SdPageObjsTLB::SdPageObjsTransferable::GetDragType() const
+{
+ return meDragType;
+}
+
+// -----------------------------------------------------------------------------
+
+sal_Int64 SAL_CALL SdPageObjsTLB::SdPageObjsTransferable::getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw( ::com::sun::star::uno::RuntimeException )
+{
+ sal_Int64 nRet;
+
+ if( ( rId.getLength() == 16 ) &&
+ ( 0 == rtl_compareMemory( getUnoTunnelId().getConstArray(), rId.getConstArray(), 16 ) ) )
+ {
+ nRet = (sal_Int64) this;
+ }
+ else
+ nRet = 0;
+
+ return nRet;
+}
+
+// -----------------------------------------------------------------------------
+
+const ::com::sun::star::uno::Sequence< sal_Int8 >& SdPageObjsTLB::SdPageObjsTransferable::getUnoTunnelId()
+{
+ static ::com::sun::star::uno::Sequence< sal_Int8 > aSeq;
+
+ if( !aSeq.getLength() )
+ {
+ static osl::Mutex aCreateMutex;
+ osl::MutexGuard aGuard( aCreateMutex );
+
+ aSeq.realloc( 16 );
+ rtl_createUuid( reinterpret_cast< sal_uInt8* >( aSeq.getArray() ), 0, sal_True );
+ }
+
+ return aSeq;
+}
+
+// -----------------------------------------------------------------------------
+
+SdPageObjsTLB::SdPageObjsTransferable* SdPageObjsTLB::SdPageObjsTransferable::getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxData )
+ throw()
+{
+ try
+ {
+ ::com::sun::star::uno::Reference< ::com::sun::star::lang::XUnoTunnel > xUnoTunnel( rxData, ::com::sun::star::uno::UNO_QUERY );
+
+ return( xUnoTunnel.is() ?
+ ( (SdPageObjsTLB::SdPageObjsTransferable*)(void*) xUnoTunnel->getSomething( SdPageObjsTLB::SdPageObjsTransferable::getUnoTunnelId() ) ) :
+ NULL );
+ }
+ catch( const ::com::sun::star::uno::Exception& )
+ {
+ return NULL;
+ }
+}
+
/*************************************************************************
|*
|* Ctor1 SdPageObjsTLB
@@ -583,7 +647,8 @@ List* SdPageObjsTLB::GetSelectEntryList( USHORT nDepth )
if( !pList )
pList = new List();
- pList->Insert( new String( GetEntryText( pEntry ) ), LIST_APPEND );
+ const String aEntryText( GetEntryText( pEntry ) );
+ pList->Insert( new String( aEntryText ), LIST_APPEND );
}
pEntry = NextSelected( pEntry );
}
@@ -957,11 +1022,9 @@ void SdPageObjsTLB::DoDrag()
SvTreeListBox::ReleaseMouse();
bIsInDrag = TRUE;
- SD_MOD()->SetCurrentNavigatorDragDocShell( pDocShell );
- SD_MOD()->SetCurrentNavigatorDragType( eDragType );
// object is destroyed by internal reference mechanism
- ( new SdPageObjsTLB::SdPageObjsTransferable( *this, aBookmark ) )->StartDrag( this, nDNDActions );
+ ( new SdPageObjsTLB::SdPageObjsTransferable( *this, aBookmark, *pDocShell, eDragType ) )->StartDrag( this, nDNDActions );
}
}
@@ -985,9 +1048,6 @@ void SdPageObjsTLB::DragFinished( sal_uInt8 nDropAction )
}
pDropNavWin = NULL;
- SD_MOD()->SetCurrentNavigatorDragType( NAVIGATOR_DRAGTYPE_NONE );
- SD_MOD()->SetCurrentNavigatorDragDocShell( NULL );
-
bIsInDrag = FALSE;
}
diff --git a/sd/source/ui/func/sdundogr.cxx b/sd/source/ui/func/sdundogr.cxx
index f65e90dc1197..fcd815a17f14 100644
--- a/sd/source/ui/func/sdundogr.cxx
+++ b/sd/source/ui/func/sdundogr.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: sdundogr.cxx,v $
*
- * $Revision: 1.2 $
+ * $Revision: 1.3 $
*
- * last change: $Author: ka $ $Date: 2001-10-22 13:36:53 $
+ * last change: $Author: ka $ $Date: 2002-12-11 14:54:58 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -77,7 +77,7 @@ SdUndoGroup::~SdUndoGroup()
ULONG nLast = aCtn.Count();
for (ULONG nAction = 0; nAction < nLast; nAction++)
{
- delete aCtn.GetObject(nAction);
+ delete (SdUndoAction*) aCtn.GetObject(nAction);
}
aCtn.Clear();
}
diff --git a/sd/source/ui/inc/sdtreelb.hxx b/sd/source/ui/inc/sdtreelb.hxx
index 356159850ba7..7a0da3e41bcf 100644
--- a/sd/source/ui/inc/sdtreelb.hxx
+++ b/sd/source/ui/inc/sdtreelb.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: sdtreelb.hxx,v $
*
- * $Revision: 1.6 $
+ * $Revision: 1.7 $
*
- * last change: $Author: ka $ $Date: 2002-12-06 16:51:18 $
+ * last change: $Author: ka $ $Date: 2002-12-11 14:54:59 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -63,10 +63,15 @@
#ifndef _SDTREELB_HXX
#define _SDTREELB_HXX
+#ifndef _TRANSFER_HXX //autogen
+#include <svtools/transfer.hxx>
+#endif
#ifndef _SD_SDRESID_HXX
#include "sdresid.hxx"
#endif
-
+#ifndef _PRESENTATION_HXX
+#include "pres.hxx"
+#endif
#ifndef _STRING_HXX //autogen
#include <tools/string.hxx>
#endif
@@ -76,9 +81,6 @@
#ifndef _URLBMK_HXX
#include <svtools/urlbmk.hxx>
#endif
-#ifndef _TRANSFER_HXX //autogen
-#include <svtools/transfer.hxx>
-#endif
#ifndef _REF_HXX //autogen
#include <tools/ref.hxx>
#endif
@@ -89,6 +91,7 @@ SV_DECL_REF(SdDrawDocShell)
#endif
class SdDrawDocument;
+class SdDrawDocShell;
class SfxMedium;
class SfxViewFrame;
class SdNavigatorWin;
@@ -107,7 +110,7 @@ private:
static BOOL bIsInDrag; // static, falls der Navigator im ExecuteDrag geloescht wird
-private:
+public:
// nested class to implement the TransferableHelper
class SdPageObjsTransferable : public TransferableHelper
@@ -116,6 +119,8 @@ private:
SdPageObjsTLB& mrParent;
INetBookmark maBookmark;
+ SdDrawDocShell& mrDocShell;
+ NavigatorDragType meDragType;
virtual ~SdPageObjsTransferable();
@@ -123,10 +128,26 @@ private:
virtual sal_Bool GetData( const ::com::sun::star::datatransfer::DataFlavor& rFlavor );
virtual void DragFinished( sal_Int8 nDropAction );
+ virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw( ::com::sun::star::uno::RuntimeException );
+
+ public:
+
+ SdPageObjsTransferable( SdPageObjsTLB& rParent,
+ const INetBookmark& rBookmark,
+ SdDrawDocShell& rDocShell,
+ NavigatorDragType eDragType ) :
+ mrParent( rParent ),
+ maBookmark( rBookmark ),
+ mrDocShell( rDocShell ),
+ meDragType( eDragType ) {}
+
+ SdDrawDocShell& GetDocShell() const;
+ NavigatorDragType GetDragType() const;
+
public:
- SdPageObjsTransferable( SdPageObjsTLB& rParent, const INetBookmark& rBookmark ) :
- mrParent( rParent ), maBookmark( rBookmark ) {}
+ static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId();
+ static SdPageObjsTransferable* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxData ) throw();
};
friend class SdPageObjsTLB::SdPageObjsTransferable;
diff --git a/sd/source/ui/inc/sdxfer.hxx b/sd/source/ui/inc/sdxfer.hxx
index 5ebb3d307219..792feb683b3f 100644
--- a/sd/source/ui/inc/sdxfer.hxx
+++ b/sd/source/ui/inc/sdxfer.hxx
@@ -2,9 +2,9 @@
*
* $RCSfile: sdxfer.hxx,v $
*
- * $Revision: 1.10 $
+ * $Revision: 1.11 $
*
- * last change: $Author: cl $ $Date: 2002-11-19 17:22:06 $
+ * last change: $Author: ka $ $Date: 2002-12-11 14:54:59 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -127,6 +127,8 @@ protected:
virtual void DragFinished( sal_Int8 nDropAction );
virtual void ObjectReleased();
+ virtual sal_Int64 SAL_CALL getSomething( const ::com::sun::star::uno::Sequence< sal_Int8 >& rId ) throw( ::com::sun::star::uno::RuntimeException );
+
public:
SdTransferable( SdDrawDocument* pSrcDoc, SdView* pWorkView, BOOL bInitOnGetData );
@@ -159,6 +161,7 @@ public:
public:
+ static const ::com::sun::star::uno::Sequence< sal_Int8 >& getUnoTunnelId();
static SdTransferable* getImplementation( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& rxData ) throw();
};
diff --git a/sd/source/ui/view/sdview2.cxx b/sd/source/ui/view/sdview2.cxx
index d2c2b008f993..cd58deb99627 100644
--- a/sd/source/ui/view/sdview2.cxx
+++ b/sd/source/ui/view/sdview2.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: sdview2.cxx,v $
*
- * $Revision: 1.32 $
+ * $Revision: 1.33 $
*
- * last change: $Author: cl $ $Date: 2002-10-31 13:22:36 $
+ * last change: $Author: ka $ $Date: 2002-12-11 14:54:59 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -173,16 +173,14 @@ struct SdNavigatorDropEvent : public ExecuteDropEvent
SdWindow* mpTargetWindow;
USHORT mnPage;
USHORT mnLayer;
- const SdDrawDocShell* mpNavigatorDragDocShell;
SdNavigatorDropEvent( const ExecuteDropEvent& rEvt, DropTargetHelper& rTargetHelper,
- SdWindow* pTargetWindow, USHORT nPage, USHORT nLayer, const SdDrawDocShell* pNavigatorDragDocShell ) :
+ SdWindow* pTargetWindow, USHORT nPage, USHORT nLayer ) :
ExecuteDropEvent( rEvt ),
mrTargetHelper( rTargetHelper ),
mpTargetWindow( pTargetWindow ),
mnPage( nPage ),
- mnLayer( nLayer ),
- mpNavigatorDragDocShell( pNavigatorDragDocShell ) {}
+ mnLayer( nLayer ) {}
};
// -----------------------------------------------------------------------------
@@ -789,15 +787,16 @@ sal_Int8 SdView::ExecuteDrop( const ExecuteDropEvent& rEvt, DropTargetHelper& rT
if( aDataHelper.HasFormat( SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK ) &&
aDataHelper.GetINetBookmark( SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK, aINetBookmark ) )
{
- const NavigatorDragType eDragType = SD_MOD()->GetCurrentNavigatorDragType();
+ SdPageObjsTLB::SdPageObjsTransferable* pPageObjsTransferable = SdPageObjsTLB::SdPageObjsTransferable::getImplementation( aDataHelper.GetXTransferable() );
- if( eDragType == NAVIGATOR_DRAGTYPE_LINK || eDragType == NAVIGATOR_DRAGTYPE_EMBEDDED )
+ if( pPageObjsTransferable &&
+ ( NAVIGATOR_DRAGTYPE_LINK == pPageObjsTransferable->GetDragType() ||
+ NAVIGATOR_DRAGTYPE_EMBEDDED == pPageObjsTransferable->GetDragType() ) )
{
// insert bookmark from own navigator (handled async. due to possible message box )
Application::PostUserEvent( LINK( this, SdView, ExecuteNavigatorDrop ),
new SdNavigatorDropEvent( rEvt, rTargetHelper, pTargetWindow,
- nPage, nLayer,
- SD_MOD()->GetCurrentNavigatorDragDocShell() ) );
+ nPage, nLayer ) );
nRet = nDropAction;
}
else
@@ -884,11 +883,11 @@ sal_Int8 SdView::ExecuteDrop( const ExecuteDropEvent& rEvt, DropTargetHelper& rT
IMPL_LINK( SdView, ExecuteNavigatorDrop, SdNavigatorDropEvent*, pSdNavigatorDropEvent )
{
- TransferableDataHelper aDataHelper( pSdNavigatorDropEvent->maDropEvent.Transferable );
- INetBookmark aINetBookmark;
+ TransferableDataHelper aDataHelper( pSdNavigatorDropEvent->maDropEvent.Transferable );
+ SdPageObjsTLB::SdPageObjsTransferable* pPageObjsTransferable = SdPageObjsTLB::SdPageObjsTransferable::getImplementation( aDataHelper.GetXTransferable() );
+ INetBookmark aINetBookmark;
- if( pSdNavigatorDropEvent->mpNavigatorDragDocShell &&
- aDataHelper.GetINetBookmark( SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK, aINetBookmark ) )
+ if( pPageObjsTransferable && aDataHelper.GetINetBookmark( SOT_FORMATSTR_ID_NETSCAPE_BOOKMARK, aINetBookmark ) )
{
Point aPos;
List aBookmarkList;
@@ -916,9 +915,7 @@ IMPL_LINK( SdView, ExecuteNavigatorDrop, SdNavigatorDropEvent*, pSdNavigatorDrop
// die einzufuegenden geprueft und gegebenenfalls in einer Ersatzliste
// aufgenommen (bNameOK == FALSE -> Benutzer hat abgebrochen)
List* pExchangeList = NULL;
-
- // #93240# swapped order: GetExchangeList() ends drop, which in turn resets GetCurrentNavigatorDragType.
- BOOL bLink = ( SD_MOD()->GetCurrentNavigatorDragType() == NAVIGATOR_DRAGTYPE_LINK ? TRUE : FALSE );
+ BOOL bLink = ( NAVIGATOR_DRAGTYPE_LINK == pPageObjsTransferable->GetDragType() ? TRUE : FALSE );
BOOL bNameOK = GetExchangeList( pExchangeList, &aBookmarkList, 2 );
BOOL bReplace = FALSE;
@@ -929,7 +926,7 @@ IMPL_LINK( SdView, ExecuteNavigatorDrop, SdNavigatorDropEvent*, pSdNavigatorDrop
{
pDoc->InsertBookmark( &aBookmarkList, pExchangeList,
bLink, bReplace, nPgPos, FALSE,
- (SdDrawDocShell*) pSdNavigatorDropEvent->mpNavigatorDragDocShell,
+ &pPageObjsTransferable->GetDocShell(),
TRUE, &aPos );
}