summaryrefslogtreecommitdiff
path: root/svx/source/engine3d/dragmt3d.cxx
diff options
context:
space:
mode:
authorArmin Le Grand <Armin.Le.Grand@Sun.COM>2010-01-27 11:51:56 +0100
committerArmin Le Grand <Armin.Le.Grand@Sun.COM>2010-01-27 11:51:56 +0100
commitffe5c97056ab181367e49691d487eb6f6f375200 (patch)
tree552e2d32015f11e023004a4104e15cce886312e0 /svx/source/engine3d/dragmt3d.cxx
parentde7c998fe9ba5be956bf8a155455ad17985c4f88 (diff)
aw079: #i99147# attribute rework and others
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 3408108788c4..4c09e6720fe2 100644
--- a/svx/source/engine3d/dragmt3d.cxx
+++ b/svx/source/engine3d/dragmt3d.cxx
@@ -70,8 +70,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());