summaryrefslogtreecommitdiff
path: root/svx/inc
diff options
context:
space:
mode:
authorDavid Tardon <dtardon@redhat.com>2013-03-24 14:08:14 +0100
committerDavid Tardon <dtardon@redhat.com>2013-03-24 14:35:54 +0100
commit09d4525b11f396a68ca7c5cbb1ae3462db40c77c (patch)
tree5bdd3e8bcfe1adbcbd133094b55d188ee21077a1 /svx/inc
parent9a100bc4f96a8a909b3a2b81cd09079612a9e909 (diff)
fdo#62617 display groups on multiple layers correctly
It is possible to group objects from different layers, so it is an error to rely on layer ID when checking visibility of a group. This problem was partially obscured by the fact that SdrObjGroup::GetLayer() returns 0 if its subobjects are on different layers and 0 is a valid layer ID. Change-Id: I0ef75544a26817154642185864cafd4e6734fa38
Diffstat (limited to 'svx/inc')
-rw-r--r--svx/inc/svx/sdr/contact/viewobjectcontactofgroup.hxx3
-rw-r--r--svx/inc/svx/sdr/contact/viewobjectcontactofsdrobj.hxx9
2 files changed, 12 insertions, 0 deletions
diff --git a/svx/inc/svx/sdr/contact/viewobjectcontactofgroup.hxx b/svx/inc/svx/sdr/contact/viewobjectcontactofgroup.hxx
index b925889eb9c9..fda5610e0568 100644
--- a/svx/inc/svx/sdr/contact/viewobjectcontactofgroup.hxx
+++ b/svx/inc/svx/sdr/contact/viewobjectcontactofgroup.hxx
@@ -40,6 +40,9 @@ namespace sdr
// This method recursively paints the draw hierarchy.
virtual drawinglayer::primitive2d::Primitive2DSequence getPrimitive2DSequenceHierarchy(DisplayInfo& rDisplayInfo) const;
+
+ private:
+ virtual bool isPrimitiveVisibleOnAnyLayer(const SetOfByte& aLayers) const;
};
} // end of namespace contact
} // end of namespace sdr
diff --git a/svx/inc/svx/sdr/contact/viewobjectcontactofsdrobj.hxx b/svx/inc/svx/sdr/contact/viewobjectcontactofsdrobj.hxx
index d7609bdcbb39..e0384426add3 100644
--- a/svx/inc/svx/sdr/contact/viewobjectcontactofsdrobj.hxx
+++ b/svx/inc/svx/sdr/contact/viewobjectcontactofsdrobj.hxx
@@ -25,6 +25,7 @@
//////////////////////////////////////////////////////////////////////////////
// predeclarations
class SdrObject;
+class SetOfByte;
//////////////////////////////////////////////////////////////////////////////
@@ -34,6 +35,14 @@ namespace sdr
{
class SVX_DLLPUBLIC ViewObjectContactOfSdrObj : public ViewObjectContact
{
+ /** Test whether the primitive is visible on any layer from @c aLayers
+
+ This should be overriden by ViewObjectContacts of SDR classes
+ that have subparts which can be on different layers (that is,
+ SdrObjGroup .-)
+ */
+ virtual bool isPrimitiveVisibleOnAnyLayer(const SetOfByte& aLayers) const;
+
protected:
const SdrObject& getSdrObject() const;