summaryrefslogtreecommitdiff
path: root/include/svx/ipolypolygoneditorcontroller.hxx
diff options
context:
space:
mode:
authorStephan Bergmann <sbergman@redhat.com>2018-02-21 15:05:39 +0100
committerStephan Bergmann <sbergman@redhat.com>2018-02-21 23:49:47 +0100
commiteb21db08b3aee4b9113d221ca47af73d2f9b82d7 (patch)
tree4b0ff54f634f9bea880733a1e9cfb63a60aeb1e8 /include/svx/ipolypolygoneditorcontroller.hxx
parent0a46237093c1750ee69ddb6a365098dc1d06b758 (diff)
IPolyPolygonEditorController used in dynamic_cast should be SAL_DLLPUBLIC_RTTI
...so that the dynamic_cast also works on macOS (where RTTI equivalence is determined by address, not by strcmp). The two relevant dynamic_casts are in BezierObjectBar::GetAttrState and BezierObjectBar::Execute (both in sd/source/ui/view/drbezob.cxx). (They can be triggered from the Impress UI by adding any "Motion Paths" animation to a shape, then selecting and manipulating the path's control points.) The source of those dynamic_casts appears to always be sd::MotionPathTag, defined in sd/source/ui/animations/motionpathtag.hxx in the same library, so wouldn't technically require IPolyPolygonEditorController to be SAL_DLLPUBLIC_RTTI. However, while 367e8743adbe1319f5be29c001c93b747f7aa665 "INTEGRATION: CWS pathfinder01" introduced that sd::MotionPathTag deriving from IPolyPolygonEditorController, 346e0ffe907c85af85573dc42c19795ec1c9872c "INTEGRATION: CWS pathfinder01: #i41800# added inteface IPolyPolygonEditorControler to allow edit of non marked path objects" also added IPolyPolygonEditorController to SdrPolyEditView in include/svx/svdpoev.hxx, for unclear reasons. So better be conservative and assume SAL_DLLPUBLIC_RTTI is needed after all. Change-Id: Ieefabf7b00357876046014bbff098076108f9dea Reviewed-on: https://gerrit.libreoffice.org/50109 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
Diffstat (limited to 'include/svx/ipolypolygoneditorcontroller.hxx')
-rw-r--r--include/svx/ipolypolygoneditorcontroller.hxx5
1 files changed, 4 insertions, 1 deletions
diff --git a/include/svx/ipolypolygoneditorcontroller.hxx b/include/svx/ipolypolygoneditorcontroller.hxx
index f9df283e6404..a65a5d868e56 100644
--- a/include/svx/ipolypolygoneditorcontroller.hxx
+++ b/include/svx/ipolypolygoneditorcontroller.hxx
@@ -20,6 +20,9 @@
#ifndef INCLUDED_SVX_IPOLYPOLYGONEDITORCONTROLLER_HXX
#define INCLUDED_SVX_IPOLYPOLYGONEDITORCONTROLLER_HXX
+#include <sal/config.h>
+
+#include <sal/types.h>
#include <svx/svxdllapi.h>
@@ -46,7 +49,7 @@ enum class SdrObjClosedKind
Closed // closed object (polygon, ...)
};
-class IPolyPolygonEditorController
+class SAL_DLLPUBLIC_RTTI IPolyPolygonEditorController
{
public:
virtual void DeleteMarkedPoints() = 0;