summaryrefslogtreecommitdiff
path: root/include/vcl/outdev.hxx
diff options
context:
space:
mode:
authorNoel Grandin <noel@peralex.com>2016-09-21 14:48:15 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2016-10-27 06:08:30 +0000
commiteca5ea9f79181d45cd7fbabe2313617d3025818a (patch)
tree10b5837fe04212349825742b38f5a37be9ce7009 /include/vcl/outdev.hxx
parentbbd44f8f89839b5abb4ec6c7ea195431de5b2f48 (diff)
make the AbstractDialog stuff extend from VclReferenceBase
Because some stuff wants to multiple-inherit from VclAbstractDialog and OutputDevice-subclasses, and we'd prefer to keep all the lifetime management through a single smart pointer class (VclPtr) The change in msgbox.cxx and window.cxx is to workaround a bug in VS2013 to do with virtual inheritance and delegating constructors. Change-Id: I178e8983b7d20a7d2790aa283be838dca5d14773 Reviewed-on: https://gerrit.libreoffice.org/29140 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'include/vcl/outdev.hxx')
-rw-r--r--include/vcl/outdev.hxx7
1 files changed, 6 insertions, 1 deletions
diff --git a/include/vcl/outdev.hxx b/include/vcl/outdev.hxx
index 7342f5266ba1..e21f0cb7647a 100644
--- a/include/vcl/outdev.hxx
+++ b/include/vcl/outdev.hxx
@@ -313,7 +313,12 @@ namespace vcl {
typedef OutputDevice RenderContext;
}
-class VCL_DLLPUBLIC OutputDevice :public VclReferenceBase
+/**
+* Some things multiple-inherit from VclAbstractDialog and OutputDevice,
+* so we need to use virtual inheritance to keep the referencing counting
+* OK.
+*/
+class VCL_DLLPUBLIC OutputDevice : public virtual VclReferenceBase
{
friend class Printer;
friend class VirtualDevice;