summaryrefslogtreecommitdiff
path: root/svx/source/engine3d/dragmt3d.cxx
diff options
context:
space:
mode:
authorCarsten Driesner <cd@openoffice.org>2010-05-11 14:09:54 +0200
committerCarsten Driesner <cd@openoffice.org>2010-05-11 14:09:54 +0200
commit54f620054762e148e76c0727a57643ebc7d8c5bb (patch)
tree455e654edf2ba259af3b18e5bb04b34782a74e78 /svx/source/engine3d/dragmt3d.cxx
parent4c700c32a3f70c1d5ebe636fdd52f79feefe0d14 (diff)
parent515792c312abc929b4616c757b8eaced67718d10 (diff)
fwk139: Rebase to DEV300m77
Diffstat (limited to 'svx/source/engine3d/dragmt3d.cxx')
-rw-r--r--svx/source/engine3d/dragmt3d.cxx27
1 files changed, 26 insertions, 1 deletions
diff --git a/svx/source/engine3d/dragmt3d.cxx b/svx/source/engine3d/dragmt3d.cxx
index 060ab1bd82124..fd44db7b02d9b 100644
--- a/svx/source/engine3d/dragmt3d.cxx
+++ b/svx/source/engine3d/dragmt3d.cxx
@@ -67,8 +67,33 @@ E3dDragMethod::E3dDragMethod (
// eine Unit anlegen
const long nCnt(rMark.GetMarkCount());
static bool bDoInvalidate(false);
+ long nObjs(0);
- for(long nObjs = 0;nObjs < nCnt;nObjs++)
+ if(mbMoveFull)
+ {
+ // for non-visible 3D objects fallback to wireframe interaction
+ bool bInvisibleObjects(false);
+
+ for(nObjs = 0;!bInvisibleObjects && nObjs < nCnt;nObjs++)
+ {
+ E3dObject* pE3dObj = dynamic_cast< E3dObject* >(rMark.GetMark(nObjs)->GetMarkedSdrObj());
+
+ if(pE3dObj)
+ {
+ if(!pE3dObj->HasFillStyle() && !pE3dObj->HasLineStyle())
+ {
+ bInvisibleObjects = true;
+ }
+ }
+ }
+
+ if(bInvisibleObjects)
+ {
+ mbMoveFull = false;
+ }
+ }
+
+ for(nObjs = 0;nObjs < nCnt;nObjs++)
{
E3dObject* pE3dObj = dynamic_cast< E3dObject* >(rMark.GetMark(nObjs)->GetMarkedSdrObj());