[Libreoffice-commits] core.git: 4 commits - include/svx include/vcl sd/source svx/Library_svxcore.mk svx/source vcl/source

Zolnai Tamás tamas.zolnai at collabora.com
Fri Mar 21 06:02:39 PDT 2014


 include/svx/sdr/contact/viewcontactofopengl.hxx           |   35 ----------
 include/svx/sdr/contact/viewcontactofopenglobj.hxx        |   37 +++++++++++
 include/svx/sdr/contact/viewobjectcontactofopenglobj.hxx  |   39 +++++++++++
 include/svx/sdr/contact/viewobjectcontactofsdrobj.hxx     |   14 +++-
 include/svx/svdoopengl.hxx                                |    4 -
 include/vcl/OpenGLContext.hxx                             |    2 
 sd/source/ui/func/fuinsfil.cxx                            |    2 
 svx/Library_svxcore.mk                                    |    5 +
 svx/source/sdr/contact/viewcontactofopengl.cxx            |   38 -----------
 svx/source/sdr/contact/viewcontactofopenglobj.cxx         |   44 +++++++++++++
 svx/source/sdr/contact/viewobjectcontactofopenglobj.cxx   |   47 ++++++++++++++
 svx/source/sdr/contact/viewobjectcontactofsdrmediaobj.cxx |   26 +------
 svx/source/sdr/contact/viewobjectcontactofsdrobj.cxx      |   22 ++++++
 svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx  |   37 +----------
 vcl/source/opengl/OpenGLContext.cxx                       |    4 -
 15 files changed, 222 insertions(+), 134 deletions(-)

New commits:
commit d834be0dac2b455076e0c0824f8e6a6e709625ac
Author: Zolnai Tamás <tamas.zolnai at collabora.com>
Date:   Fri Mar 21 14:00:56 2014 +0100

    Init an opengl context bounded to an existent window.
    
    Via ViewObjectContact can we query a window.
    It seems this window is the same which is used
    by chart edit mode.
    
    Change-Id: Ib6df4d58730774f3d86b453b8174a78bb2c8a45b

diff --git a/include/svx/sdr/contact/viewcontactofopenglobj.hxx b/include/svx/sdr/contact/viewcontactofopenglobj.hxx
index 0ac95ce..6b48e66 100644
--- a/include/svx/sdr/contact/viewcontactofopenglobj.hxx
+++ b/include/svx/sdr/contact/viewcontactofopenglobj.hxx
@@ -24,6 +24,8 @@ public:
     virtual ~ViewContactOfOpenGLObj();
 
 protected:
+    virtual ViewObjectContact& CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact);
+
     virtual drawinglayer::primitive2d::Primitive2DSequence createViewIndependentPrimitive2DSequence() const;
 };
 
diff --git a/include/svx/sdr/contact/viewobjectcontactofopenglobj.hxx b/include/svx/sdr/contact/viewobjectcontactofopenglobj.hxx
new file mode 100644
index 0000000..00e1dff
--- /dev/null
+++ b/include/svx/sdr/contact/viewobjectcontactofopenglobj.hxx
@@ -0,0 +1,39 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef INCLUDED_SVX_SDR_CONTACT_VIEWOBJECTCONTACTOFOPENGL_HXX
+#define INCLUDED_SVX_SDR_CONTACT_VIEWOBJECTCONTACTOFOPENGL_HXX
+
+#include <svx/sdr/contact/viewobjectcontactofsdrobj.hxx>
+#include <vcl/OpenGLContext.hxx>
+
+class Window;
+
+namespace sdr {
+namespace contact {
+
+class ViewObjectContactOfOpenGLObj : public ViewObjectContactOfSdrObj
+{
+public:
+    ViewObjectContactOfOpenGLObj(ObjectContact& rObjectContact, ViewContact& rViewContact);
+    virtual ~ViewObjectContactOfOpenGLObj();
+
+protected:
+    Window* getWindow() const;
+
+private:
+    OpenGLContext m_aOpenGLContext;
+};
+
+} // namespace sdr
+} // namespace contact
+
+#endif
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/vcl/OpenGLContext.hxx b/include/vcl/OpenGLContext.hxx
index 390c3df..82145b4 100644
--- a/include/vcl/OpenGLContext.hxx
+++ b/include/vcl/OpenGLContext.hxx
@@ -99,7 +99,7 @@ public:
     OpenGLContext();
     ~OpenGLContext();
 
-    bool init();
+    bool init(Window* pParent = 0);
     void setWinSize(const Size& rSize);
     GLWindow& getOpenGLWindow();
 
diff --git a/svx/Library_svxcore.mk b/svx/Library_svxcore.mk
index 39f15b2..d025cdf 100644
--- a/svx/Library_svxcore.mk
+++ b/svx/Library_svxcore.mk
@@ -75,6 +75,7 @@ $(eval $(call gb_Library_use_libraries,svxcore,\
     utl \
     vcl \
     xo \
+    vclopengl \
 	$(gb_UWINAPI) \
 ))
 
@@ -82,6 +83,7 @@ $(eval $(call gb_Library_use_externals,svxcore,\
 	boost_headers \
 	icuuc \
 	icu_headers \
+	glew \
 ))
 
 $(eval $(call gb_Library_add_exception_objects,svxcore,\
@@ -194,6 +196,7 @@ $(eval $(call gb_Library_add_exception_objects,svxcore,\
     svx/source/sdr/contact/viewcontactofsdrmeasureobj \
     svx/source/sdr/contact/objectcontactofobjlistpainter \
     svx/source/sdr/contact/viewobjectcontactofe3d \
+    svx/source/sdr/contact/viewobjectcontactofopenglobj \
     svx/source/sdr/event/eventhandler \
     svx/source/sdr/overlay/overlayline \
     svx/source/sdr/overlay/overlaycrosshair \
diff --git a/svx/source/sdr/contact/viewcontactofopenglobj.cxx b/svx/source/sdr/contact/viewcontactofopenglobj.cxx
index 25d5ef2..ef2c32a 100644
--- a/svx/source/sdr/contact/viewcontactofopenglobj.cxx
+++ b/svx/source/sdr/contact/viewcontactofopenglobj.cxx
@@ -9,6 +9,7 @@
 
 #include <com/sun/star/drawing/XShape.hpp>
 #include <svx/sdr/contact/viewcontactofopenglobj.hxx>
+#include <svx/sdr/contact/viewobjectcontactofopenglobj.hxx>
 #include <drawinglayer/primitive2d/openglprimitive2d.hxx>
 #include <svx/svdoopengl.hxx>
 #include <tools/gen.hxx>
@@ -24,6 +25,11 @@ ViewContactOfOpenGLObj::~ViewContactOfOpenGLObj()
 {
 }
 
+ViewObjectContact& ViewContactOfOpenGLObj::CreateObjectSpecificViewObjectContact(ObjectContact& rObjectContact)
+{
+    return *( new ViewObjectContactOfOpenGLObj( rObjectContact, *this ) );
+}
+
 drawinglayer::primitive2d::Primitive2DSequence ViewContactOfOpenGLObj::createViewIndependentPrimitive2DSequence() const
 {
     com::sun::star::uno::Reference< com::sun::star::drawing::XShape > xShape(GetSdrObject().getUnoShape(), com::sun::star::uno::UNO_QUERY);
diff --git a/svx/source/sdr/contact/viewobjectcontactofopenglobj.cxx b/svx/source/sdr/contact/viewobjectcontactofopenglobj.cxx
new file mode 100644
index 0000000..1689468
--- /dev/null
+++ b/svx/source/sdr/contact/viewobjectcontactofopenglobj.cxx
@@ -0,0 +1,47 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#include <svx/sdr/contact/viewobjectcontactofopenglobj.hxx>
+#include <vcl/outdev.hxx>
+#include <vcl/window.hxx>
+
+using namespace sdr::contact;
+
+
+ViewObjectContactOfOpenGLObj::ViewObjectContactOfOpenGLObj(
+    ObjectContact& rObjectContact, ViewContact& rViewContact )
+    : ViewObjectContactOfSdrObj( rObjectContact, rViewContact )
+{
+    m_aOpenGLContext.init(getWindow());
+    // Set a dummy size to make the window visible
+    m_aOpenGLContext.setWinSize(Size(200,200));
+}
+
+ViewObjectContactOfOpenGLObj::~ViewObjectContactOfOpenGLObj()
+{
+}
+
+Window* ViewObjectContactOfOpenGLObj::getWindow() const
+{
+    Window* pRetval = 0;
+
+    boost::optional<const OutputDevice&> oPageOutputDev = getPageViewOutputDevice();
+    if( oPageOutputDev )
+    {
+        if(OUTDEV_WINDOW == oPageOutputDev->GetOutDevType())
+        {
+            pRetval = static_cast< Window* >(&const_cast<OutputDevice&>(oPageOutputDev.get()));
+        }
+    }
+
+    return pRetval;
+}
+
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/vcl/source/opengl/OpenGLContext.cxx b/vcl/source/opengl/OpenGLContext.cxx
index 5f94c47..560ff03 100644
--- a/vcl/source/opengl/OpenGLContext.cxx
+++ b/vcl/source/opengl/OpenGLContext.cxx
@@ -316,9 +316,9 @@ int oglErrorHandler( Display* /*dpy*/, XErrorEvent* /*evnt*/ )
 
 #endif
 
-bool OpenGLContext::init()
+bool OpenGLContext::init( Window* pParent )
 {
-    m_pWindow.reset(new Window(0, WB_NOBORDER|WB_NODIALOGCONTROL));
+    m_pWindow.reset(pParent ? pParent : new Window(0, WB_NOBORDER|WB_NODIALOGCONTROL));
     SAL_INFO("vcl.opengl", "OpenGLContext::OpenGLContext----start");
     initWindow();
     m_pWindow->setPosSizePixel(0,0,0,0);
commit 47cf5156e951a724604db1be99750bc9a722592b
Author: Zolnai Tamás <tamas.zolnai at collabora.com>
Date:   Fri Mar 21 11:47:29 2014 +0100

    Consistent naming: ViewContactOfOpenGL{->Obj}
    
    Change-Id: I6bacdba00dfd81442919bce768ef2e7a9f8ce86e

diff --git a/include/svx/sdr/contact/viewcontactofopengl.hxx b/include/svx/sdr/contact/viewcontactofopenglobj.hxx
similarity index 83%
rename from include/svx/sdr/contact/viewcontactofopengl.hxx
rename to include/svx/sdr/contact/viewcontactofopenglobj.hxx
index e5fae8b..0ac95ce 100644
--- a/include/svx/sdr/contact/viewcontactofopengl.hxx
+++ b/include/svx/sdr/contact/viewcontactofopenglobj.hxx
@@ -17,11 +17,11 @@ class SdrOpenGLObj;
 namespace sdr {
 namespace contact {
 
-class ViewContactOfOpenGL : public ViewContactOfSdrObj
+class ViewContactOfOpenGLObj : public ViewContactOfSdrObj
 {
 public:
-    explicit ViewContactOfOpenGL(SdrOpenGLObj& rOpenGLObj);
-    virtual ~ViewContactOfOpenGL();
+    explicit ViewContactOfOpenGLObj(SdrOpenGLObj& rOpenGLObj);
+    virtual ~ViewContactOfOpenGLObj();
 
 protected:
     virtual drawinglayer::primitive2d::Primitive2DSequence createViewIndependentPrimitive2DSequence() const;
diff --git a/include/svx/svdoopengl.hxx b/include/svx/svdoopengl.hxx
index 6a6b1d1..03d7405 100644
--- a/include/svx/svdoopengl.hxx
+++ b/include/svx/svdoopengl.hxx
@@ -11,14 +11,14 @@
 #define INCLUDED_SVX_SVDO_OPENGL_HXX
 
 #include <svx/svdobj.hxx>
-#include <svx/sdr/contact/viewcontactofopengl.hxx>
+#include <svx/sdr/contact/viewcontactofopenglobj.hxx>
 
 class SVX_DLLPUBLIC SdrOpenGLObj : public SdrObject
 {
 public:
     virtual sdr::contact::ViewContact* CreateObjectSpecificViewContact()
     {
-        return new sdr::contact::ViewContactOfOpenGL(*this);
+        return new sdr::contact::ViewContactOfOpenGLObj(*this);
     }
 };
 
diff --git a/svx/Library_svxcore.mk b/svx/Library_svxcore.mk
index 4b59047..39f15b2 100644
--- a/svx/Library_svxcore.mk
+++ b/svx/Library_svxcore.mk
@@ -159,7 +159,7 @@ $(eval $(call gb_Library_add_exception_objects,svxcore,\
     svx/source/sdr/contact/viewobjectcontactofpageobj \
     svx/source/sdr/contact/viewobjectcontactofe3dscene \
     svx/source/sdr/contact/viewcontactofgraphic \
-    svx/source/sdr/contact/viewcontactofopengl \
+    svx/source/sdr/contact/viewcontactofopenglobj \
     svx/source/sdr/contact/viewobjectcontactredirector \
     svx/source/sdr/contact/viewcontactofsdrcircobj \
     svx/source/sdr/contact/viewcontactofgroup \
diff --git a/svx/source/sdr/contact/viewcontactofopengl.cxx b/svx/source/sdr/contact/viewcontactofopenglobj.cxx
similarity index 82%
rename from svx/source/sdr/contact/viewcontactofopengl.cxx
rename to svx/source/sdr/contact/viewcontactofopenglobj.cxx
index 054fb99..25d5ef2 100644
--- a/svx/source/sdr/contact/viewcontactofopengl.cxx
+++ b/svx/source/sdr/contact/viewcontactofopenglobj.cxx
@@ -8,23 +8,23 @@
  */
 
 #include <com/sun/star/drawing/XShape.hpp>
-#include <svx/sdr/contact/viewcontactofopengl.hxx>
+#include <svx/sdr/contact/viewcontactofopenglobj.hxx>
 #include <drawinglayer/primitive2d/openglprimitive2d.hxx>
 #include <svx/svdoopengl.hxx>
 #include <tools/gen.hxx>
 
 using namespace sdr::contact;
 
-ViewContactOfOpenGL::ViewContactOfOpenGL(SdrOpenGLObj& rOpenGLObj)
+ViewContactOfOpenGLObj::ViewContactOfOpenGLObj(SdrOpenGLObj& rOpenGLObj)
     : ViewContactOfSdrObj(rOpenGLObj)
 {
 }
 
-ViewContactOfOpenGL::~ViewContactOfOpenGL()
+ViewContactOfOpenGLObj::~ViewContactOfOpenGLObj()
 {
 }
 
-drawinglayer::primitive2d::Primitive2DSequence ViewContactOfOpenGL::createViewIndependentPrimitive2DSequence() const
+drawinglayer::primitive2d::Primitive2DSequence ViewContactOfOpenGLObj::createViewIndependentPrimitive2DSequence() const
 {
     com::sun::star::uno::Reference< com::sun::star::drawing::XShape > xShape(GetSdrObject().getUnoShape(), com::sun::star::uno::UNO_QUERY);
     const Point aPos(xShape->getPosition().X,xShape->getPosition().Y);
commit efdc2b2f86c4c08c02440bbb8e828cc2e76ce95f
Author: Zolnai Tamás <tamas.zolnai at collabora.com>
Date:   Thu Mar 20 19:06:25 2014 +0100

    Extract getPageWindowOutputDevice to a common place
    
    Change-Id: Idef06778251d7437cfce2151c6fb9654db04d3a4

diff --git a/include/svx/sdr/contact/viewobjectcontactofsdrobj.hxx b/include/svx/sdr/contact/viewobjectcontactofsdrobj.hxx
index 5483787..fdf64e8 100644
--- a/include/svx/sdr/contact/viewobjectcontactofsdrobj.hxx
+++ b/include/svx/sdr/contact/viewobjectcontactofsdrobj.hxx
@@ -21,12 +21,12 @@
 #define INCLUDED_SVX_SDR_CONTACT_VIEWOBJECTCONTACTOFSDROBJ_HXX
 
 #include <svx/sdr/contact/viewobjectcontact.hxx>
-
+#include <boost/optional.hpp>
 
 // predeclarations
 class SdrObject;
 class SetOfByte;
-
+class OutputDevice;
 
 
 namespace sdr
@@ -51,6 +51,16 @@ namespace sdr
             virtual ~ViewObjectContactOfSdrObj();
 
             virtual bool isPrimitiveVisible(const DisplayInfo& rDisplayInfo) const;
+
+            /** retrieves the device which a PageView belongs to, starting from its ObjectContactOfPageView
+
+                Since #i72752#, the PaintWindow (and thus the OutputDevice) associated with a PageView is not
+                constant over its lifetime. Instead, during some paint operations, the PaintWindow/OutputDevice
+                might be temporarily patched.
+
+                This method cares for this, by retrieving the very original OutputDevice.
+            */
+            boost::optional<const OutputDevice&> getPageViewOutputDevice() const;
         };
     } // end of namespace contact
 } // end of namespace sdr
diff --git a/svx/source/sdr/contact/viewobjectcontactofsdrmediaobj.cxx b/svx/source/sdr/contact/viewobjectcontactofsdrmediaobj.cxx
index 8a4a20b..429ebbe 100644
--- a/svx/source/sdr/contact/viewobjectcontactofsdrmediaobj.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofsdrmediaobj.cxx
@@ -18,18 +18,16 @@
  */
 
 
-#include <svx/sdr/contact/objectcontactofpageview.hxx>
 #include <svx/sdr/contact/viewobjectcontactofsdrmediaobj.hxx>
 #include <svx/sdr/contact/viewcontactofsdrmediaobj.hxx>
 #include <svx/sdr/contact/displayinfo.hxx>
+#include <svx/sdr/contact/objectcontact.hxx>
 #include <svx/svdomedia.hxx>
 #include <svx/svdpagv.hxx>
 #include <vcl/outdev.hxx>
 #include <vcl/window.hxx>
 #include <avmedia/mediaitem.hxx>
 #include "sdrmediawindow.hxx"
-#include <svx/sdrpagewindow.hxx>
-#include <svx/sdrpaintwindow.hxx>
 
 
 
@@ -69,26 +67,12 @@ Window* ViewObjectContactOfSdrMediaObj::getWindow() const
 {
     Window* pRetval = 0;
 
-    const ObjectContactOfPageView* pObjectContactOfPageView = dynamic_cast< const ObjectContactOfPageView* >(&GetObjectContact());
-
-    if(pObjectContactOfPageView)
+    boost::optional<const OutputDevice&> oPageOutputDev = getPageViewOutputDevice();
+    if( oPageOutputDev )
     {
-        const SdrPageWindow& rPageWindow = pObjectContactOfPageView->GetPageWindow();
-        const SdrPaintWindow* pPaintWindow = &rPageWindow.GetPaintWindow();
-
-        if(rPageWindow.GetOriginalPaintWindow())
-        {
-            // #i83183# prefer OriginalPaintWindow if set; this is
-            // the real target device. GetPaintWindow() may return
-            // the current buffer device instead
-            pPaintWindow = rPageWindow.GetOriginalPaintWindow();
-        }
-
-        OutputDevice& rOutDev = pPaintWindow->GetOutputDevice();
-
-        if(OUTDEV_WINDOW == rOutDev.GetOutDevType())
+        if(OUTDEV_WINDOW == oPageOutputDev->GetOutDevType())
         {
-            pRetval = static_cast< Window* >(&rOutDev);
+            pRetval = static_cast< Window* >(&const_cast<OutputDevice&>(oPageOutputDev.get()));
         }
     }
 
diff --git a/svx/source/sdr/contact/viewobjectcontactofsdrobj.cxx b/svx/source/sdr/contact/viewobjectcontactofsdrobj.cxx
index 3466acf..2d4871a 100644
--- a/svx/source/sdr/contact/viewobjectcontactofsdrobj.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofsdrobj.cxx
@@ -22,9 +22,13 @@
 #include <svx/sdr/contact/viewcontactofsdrobj.hxx>
 #include <svx/sdr/contact/objectcontact.hxx>
 #include <svx/sdr/contact/displayinfo.hxx>
+#include <svx/sdr/contact/objectcontactofpageview.hxx>
+#include <svx/sdrpagewindow.hxx>
+#include <svx/sdrpaintwindow.hxx>
 #include <svx/svdobj.hxx>
 #include <svx/svdoole2.hxx>
 #include <svx/svdview.hxx>
+#include <vcl/outdev.hxx>
 
 #include "fmobj.hxx"
 
@@ -140,6 +144,24 @@ namespace sdr
 
             return true;
         }
+
+        boost::optional<const OutputDevice&> ViewObjectContactOfSdrObj::getPageViewOutputDevice() const
+        {
+            ObjectContactOfPageView* pPageViewContact = dynamic_cast< ObjectContactOfPageView* >( &GetObjectContact() );
+            if ( pPageViewContact )
+            {
+                // if the PageWindow has a patched PaintWindow, use the original PaintWindow
+                // this ensures that our control is _not_ re-created just because somebody
+                // (temporarily) changed the window to paint onto.
+                // #i72429# / 2007-02-20 / frank.schoenheit (at) sun.com
+                SdrPageWindow& rPageWindow( pPageViewContact->GetPageWindow() );
+                if ( rPageWindow.GetOriginalPaintWindow() )
+                    return rPageWindow.GetOriginalPaintWindow()->GetOutputDevice();
+
+                return rPageWindow.GetPaintWindow().GetOutputDevice();
+            }
+            return boost::optional<const OutputDevice&>();
+        }
     } // end of namespace contact
 } // end of namespace sdr
 
diff --git a/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx b/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
index 726a8c7..4b88239 100644
--- a/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofunocontrol.cxx
@@ -846,16 +846,6 @@ namespace sdr { namespace contact {
                 const basegfx::B2DHomMatrix& _rInitialViewTransformation
              );
 
-        /** retrieves the device which a PageView belongs to, starting from its ObjectContactOfPageView
-
-            Since #i72752#, the PaintWindow (and thus the OutputDevice) associated with a PageView is not
-            constant over its lifetime. Instead, during some paint operations, the PaintWindow/OutputDevice
-            might be temporarily patched.
-
-            This method cares for this, by retrieving the very original OutputDevice.
-        */
-        static const OutputDevice& impl_getPageViewOutputDevice_nothrow( const ObjectContactOfPageView& _rObjectContact );
-
         const OutputDevice& impl_getOutputDevice_throw() const;
 
     private:
@@ -1051,7 +1041,7 @@ namespace sdr { namespace contact {
         if ( pPageViewContact )
         {
             SdrPageViewAccess aPVAccess( pPageViewContact->GetPageWindow().GetPageView() );
-            const OutputDevice& rDevice( impl_getPageViewOutputDevice_nothrow( *pPageViewContact ) );
+            const OutputDevice& rDevice( m_pAntiImpl->getPageViewOutputDevice().get() );
             return impl_ensureControl_nothrow(
                 aPVAccess,
                 rDevice,
@@ -1071,13 +1061,11 @@ namespace sdr { namespace contact {
 
     const OutputDevice& ViewObjectContactOfUnoControl_Impl::impl_getOutputDevice_throw() const
     {
-        ObjectContactOfPageView* pPageViewContact = dynamic_cast< ObjectContactOfPageView* >( &m_pAntiImpl->GetObjectContact() );
-        if ( pPageViewContact )
-        {
-            // do not use ObjectContact::TryToGetOutputDevice here, it would not care for the PageWindow's
-            // OriginalPaintWindow
-            return impl_getPageViewOutputDevice_nothrow( *pPageViewContact );
-        }
+        // do not use ObjectContact::TryToGetOutputDevice, it would not care for the PageWindow's
+        // OriginalPaintWindow
+        boost::optional<const OutputDevice&> oPageOutputDev = m_pAntiImpl->getPageViewOutputDevice();
+        if( oPageOutputDev )
+            return oPageOutputDev.get();
 
         const OutputDevice* pDevice = m_pAntiImpl->GetObjectContact().TryToGetOutputDevice();
         ENSURE_OR_THROW( pDevice, "no output device -> no control" );
@@ -1085,19 +1073,6 @@ namespace sdr { namespace contact {
     }
 
 
-    const OutputDevice& ViewObjectContactOfUnoControl_Impl::impl_getPageViewOutputDevice_nothrow( const ObjectContactOfPageView& _rObjectContact )
-    {
-        // if the PageWindow has a patched PaintWindow, use the original PaintWindow
-        // this ensures that our control is _not_ re-created just because somebody
-        // (temporarily) changed the window to paint onto.
-        // #i72429# / 2007-02-20 / frank.schoenheit at sun.com
-        SdrPageWindow& rPageWindow( _rObjectContact.GetPageWindow() );
-        if ( rPageWindow.GetOriginalPaintWindow() )
-            return rPageWindow.GetOriginalPaintWindow()->GetOutputDevice();
-
-        return rPageWindow.GetPaintWindow().GetOutputDevice();
-    }
-
     namespace
     {
         static void lcl_resetFlag( bool& rbFlag )
commit d6cd20a48eae0ea99728014601ee97488fc7c742
Author: Zolnai Tamás <tamas.zolnai at collabora.com>
Date:   Wed Mar 19 12:40:00 2014 +0100

    Typo: femplate->template
    
    Change-Id: I3474ffd952baa7eb1103416b05930f8439a4f5ee

diff --git a/sd/source/ui/func/fuinsfil.cxx b/sd/source/ui/func/fuinsfil.cxx
index b9de965..8204796 100644
--- a/sd/source/ui/func/fuinsfil.cxx
+++ b/sd/source/ui/func/fuinsfil.cxx
@@ -149,7 +149,7 @@ void FuInsertFile::DoExecute( SfxRequest& rReq )
                         xFilterManager->appendFilter( pFilter->GetUIName(), pFilter->GetDefaultExtension() );
                 }
 
-                // get femplate filter
+                // get template filter
                 if( mpDoc->GetDocumentType() == DOCUMENT_TYPE_IMPRESS )
                     pFilter = DrawDocShell::Factory().GetTemplateFilter();
                 else


More information about the Libreoffice-commits mailing list