forms/source/richtext/richtextcontrol.cxx    |    6 +-----
 forms/source/richtext/richtextvclcontrol.cxx |    6 ++----
 forms/source/richtext/richtextvclcontrol.hxx |    2 +-
 include/svtools/brwbox.hxx                   |    2 +-
 include/svtools/editbrowsebox.hxx            |    2 +-
 include/vcl/button.hxx                       |    6 +++---
 include/vcl/edit.hxx                         |    2 +-
 include/vcl/fixed.hxx                        |    8 ++++----
 include/vcl/headbar.hxx                      |    2 +-
 include/vcl/lstbox.hxx                       |    2 +-
 include/vcl/scrbar.hxx                       |    2 +-
 include/vcl/spinfld.hxx                      |    2 +-
 include/vcl/tabpage.hxx                      |    2 +-
 include/vcl/toolkit/combobox.hxx             |    2 +-
 include/vcl/toolkit/dialog.hxx               |    2 +-
 include/vcl/toolkit/group.hxx                |    2 +-
 include/vcl/toolkit/imgctrl.hxx              |    2 +-
 include/vcl/toolkit/spin.hxx                 |    2 +-
 include/vcl/vclmedit.hxx                     |    2 +-
 include/vcl/window.hxx                       |    2 +-
 svtools/source/brwbox/brwbox2.cxx            |   14 +++++++-------
 svtools/source/brwbox/ebbcontrols.cxx        |    6 ++----
 svx/source/fmcomp/gridcell.cxx               |    7 ++++---
 sw/inc/AnnotationWin.hxx                     |    2 +-
 sw/source/uibase/docvw/AnnotationWin2.cxx    |   25 +++++++++++++------------
 sw/source/uibase/docvw/PostItMgr.cxx         |    3 +--
 sw/source/uibase/docvw/SidebarTxtControl.cxx |    3 +--
 sw/source/uibase/docvw/SidebarTxtControl.hxx |    2 +-
 toolkit/inc/controls/filectrl.hxx            |    2 +-
 toolkit/source/awt/vclxtabpagecontainer.cxx  |    6 +-----
 toolkit/source/awt/vclxwindow.cxx            |   12 +++---------
 toolkit/source/awt/vclxwindows.cxx           |   16 ++++------------
 toolkit/source/controls/filectrl.cxx         |    7 +++++--
 vcl/source/control/button.cxx                |   12 ++++++------
 vcl/source/control/combobox.cxx              |   15 ++++++++++-----
 vcl/source/control/edit.cxx                  |    9 ++++++---
 vcl/source/control/fixed.cxx                 |   14 +++++++-------
 vcl/source/control/imgctrl.cxx               |    4 ++--
 vcl/source/control/listbox.cxx               |    4 ++--
 vcl/source/control/scrbar.cxx                |    2 +-
 vcl/source/control/spinbtn.cxx               |    4 ++--
 vcl/source/control/spinfld.cxx               |    6 +++---
 vcl/source/edit/vclmedit.cxx                 |    4 ++--
 vcl/source/toolkit/group.cxx                 |    4 ++--
 vcl/source/treelist/headbar.cxx              |    4 ++--
 vcl/source/window/dialog.cxx                 |    4 ++--
 vcl/source/window/tabpage.cxx                |    4 ++--
 vcl/source/window/window.cxx                 |    2 +-
 48 files changed, 120 insertions(+), 135 deletions(-)

New commits:
commit c200aa27ee4a0f5a89af6e970c2c22580029eded
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Thu May 21 15:54:15 2020 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Fri May 22 13:17:30 2020 +0200

    remove Size arg from Window::Draw and depend on GetSizePixel
    
    90% of cases pass GetSizePixel as the Size arg already
    and this aligns Window::Draw with how Window::PaintToDevice
    works
    
    Change-Id: If5b024179a4b7a3b099177c2f6d4b1fb006b95ef
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94644
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>

diff --git a/forms/source/richtext/richtextcontrol.cxx 
b/forms/source/richtext/richtextcontrol.cxx
index 1c96b9870361..a22d36d52424 100644
--- a/forms/source/richtext/richtextcontrol.cxx
+++ b/forms/source/richtext/richtextcontrol.cxx
@@ -325,17 +325,13 @@ namespace frm
         if ( !pTargetDevice )
             return;
 
-        ::Size aSize = pControl->GetSizePixel();
         const MapUnit eTargetUnit = pTargetDevice->GetMapMode().GetMapUnit();
-        if ( eTargetUnit != MapUnit::MapPixel )
-            aSize = pTargetDevice->PixelToLogic( aSize );
-
         ::Point aPos( _nX, _nY );
         // the XView::draw API talks about pixels, always ...
         if ( eTargetUnit != MapUnit::MapPixel )
             aPos = pTargetDevice->PixelToLogic( aPos );
 
-        pControl->Draw( pTargetDevice, aPos, aSize, DrawFlags::NoControls );
+        pControl->Draw( pTargetDevice, aPos, DrawFlags::NoControls );
     }
 
 
diff --git a/forms/source/richtext/richtextvclcontrol.cxx 
b/forms/source/richtext/richtextvclcontrol.cxx
index 492b08134d20..0df141693f54 100644
--- a/forms/source/richtext/richtextvclcontrol.cxx
+++ b/forms/source/richtext/richtextvclcontrol.cxx
@@ -288,13 +288,11 @@ namespace frm
         return bDone || Control::EventNotify(_rNEvt);
     }
 
-
-    void RichTextControl::Draw( OutputDevice* _pDev, const Point& _rPos, const 
Size& _rSize, DrawFlags /*_nFlags*/ )
+    void RichTextControl::Draw( OutputDevice* _pDev, const Point& _rPos, 
DrawFlags /*_nFlags*/ )
     {
-        m_pImpl->Draw( _pDev, _rPos, _rSize );
+        m_pImpl->Draw( _pDev, _rPos, _pDev->PixelToLogic(GetSizePixel()) );
     }
 
-
     EditView& RichTextControl::getView()
     {
         return *m_pImpl->getView( RichTextControlImpl::GrantAccess() );
diff --git a/forms/source/richtext/richtextvclcontrol.hxx 
b/forms/source/richtext/richtextvclcontrol.hxx
index 9f34f74dc7e7..f241e9350c3a 100644
--- a/forms/source/richtext/richtextvclcontrol.hxx
+++ b/forms/source/richtext/richtextvclcontrol.hxx
@@ -97,7 +97,7 @@ namespace frm
               EditView& getView();
 
         // Window overridables
-        virtual void        Draw( OutputDevice* _pDev, const Point& _rPos, 
const Size& _rSize, DrawFlags _nFlags ) override;
+        virtual void        Draw( OutputDevice* _pDev, const Point& _rPos, 
DrawFlags _nFlags ) override;
 
     protected:
         // Window overridables
diff --git a/include/svtools/brwbox.hxx b/include/svtools/brwbox.hxx
index 4c98102bdc07..0b0d3af6fb2e 100644
--- a/include/svtools/brwbox.hxx
+++ b/include/svtools/brwbox.hxx
@@ -390,7 +390,7 @@ public:
     virtual void    GetFocus() override;
     virtual void    Resize() override;
     virtual void    Paint( vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect ) override;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void    Command( const CommandEvent& rEvt ) override;
     virtual void    StartDrag( sal_Int8 _nAction, const Point& _rPosPixel ) 
override;
 
diff --git a/include/svtools/editbrowsebox.hxx 
b/include/svtools/editbrowsebox.hxx
index 175dbe6edcce..6492896eba4e 100644
--- a/include/svtools/editbrowsebox.hxx
+++ b/include/svtools/editbrowsebox.hxx
@@ -285,7 +285,7 @@ namespace svt
         virtual void GetFocus() override;
         virtual bool PreNotify(NotifyEvent& rEvt) override;
         virtual void Paint(vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rClientRect) override;
-        virtual void Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+        virtual void Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
         virtual void StateChanged( StateChangedType nStateChange ) override;
         virtual void DataChanged( const DataChangedEvent& _rEvent ) override;
         virtual void Resize() override;
diff --git a/include/vcl/button.hxx b/include/vcl/button.hxx
index 39a397ead2a1..a702a79c12c6 100644
--- a/include/vcl/button.hxx
+++ b/include/vcl/button.hxx
@@ -122,7 +122,7 @@ public:
     virtual void    KeyInput( const KeyEvent& rKEvt ) override;
     virtual void    KeyUp( const KeyEvent& rKEvt ) override;
     virtual void    Paint( vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect ) override;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void    Resize() override;
     virtual void    GetFocus() override;
     virtual void    LoseFocus() override;
@@ -310,7 +310,7 @@ public:
     virtual void    KeyInput( const KeyEvent& rKEvt ) override;
     virtual void    KeyUp( const KeyEvent& rKEvt ) override;
     virtual void    Paint( vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect ) override;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void    Resize() override;
     virtual void    GetFocus() override;
     virtual void    LoseFocus() override;
@@ -418,7 +418,7 @@ public:
     virtual void    KeyInput( const KeyEvent& rKEvt ) override;
     virtual void    KeyUp( const KeyEvent& rKEvt ) override;
     virtual void    Paint( vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect ) override;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void    Resize() override;
     virtual void    GetFocus() override;
     virtual void    LoseFocus() override;
diff --git a/include/vcl/edit.hxx b/include/vcl/edit.hxx
index 66304d33f74e..e48c5748d38f 100644
--- a/include/vcl/edit.hxx
+++ b/include/vcl/edit.hxx
@@ -157,7 +157,7 @@ public:
     virtual void        KeyInput( const KeyEvent& rKEvt ) override;
     virtual void        Paint( vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect ) override;
     virtual void        Resize() override;
-    virtual void        Draw( OutputDevice* pDev, const Point& rPos, const 
Size& rSize, DrawFlags nFlags ) override;
+    virtual void        Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void        GetFocus() override;
     virtual void        LoseFocus() override;
     virtual void        Tracking( const TrackingEvent& rTEvt ) override;
diff --git a/include/vcl/fixed.hxx b/include/vcl/fixed.hxx
index fc1563962df5..9c4005559210 100644
--- a/include/vcl/fixed.hxx
+++ b/include/vcl/fixed.hxx
@@ -59,7 +59,7 @@ public:
     virtual void    ApplySettings(vcl::RenderContext& rRenderContext) override;
 
     virtual void    Paint( vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect ) override;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void    Resize() override;
     virtual void    StateChanged( StateChangedType nType ) override;
     virtual void    DataChanged( const DataChangedEvent& rDCEvt ) override;
@@ -107,7 +107,7 @@ public:
     virtual void    ApplySettings(vcl::RenderContext&) override;
 
     virtual void    Paint( vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect ) override;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void    Resize() override;
     virtual void    StateChanged( StateChangedType nType ) override;
     virtual void    DataChanged( const DataChangedEvent& rDCEvt ) override;
@@ -132,7 +132,7 @@ public:
     virtual void    ApplySettings(vcl::RenderContext&) override;
 
     virtual void    Paint( vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect ) override;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void    Resize() override;
     virtual void    StateChanged( StateChangedType nType ) override;
     virtual void    DataChanged( const DataChangedEvent& rDCEvt ) override;
@@ -161,7 +161,7 @@ public:
     virtual void    ApplySettings(vcl::RenderContext&) override;
 
     virtual void    Paint( vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect ) override;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void    Resize() override;
     virtual void    StateChanged( StateChangedType nType ) override;
     virtual void    DataChanged( const DataChangedEvent& rDCEvt ) override;
diff --git a/include/vcl/headbar.hxx b/include/vcl/headbar.hxx
index 1a803a9bd625..12d5c59415e6 100644
--- a/include/vcl/headbar.hxx
+++ b/include/vcl/headbar.hxx
@@ -258,7 +258,7 @@ public:
     virtual void        MouseMove( const MouseEvent& rMEvt ) override;
     virtual void        Tracking( const TrackingEvent& rTEvt ) override;
     virtual void        Paint(vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect) override;
-    virtual void        Draw( OutputDevice* pDev, const Point& rPos, const 
Size& rSize, DrawFlags nFlags ) override;
+    virtual void        Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void        Resize() override;
     virtual void        Command( const CommandEvent& rCEvt ) override;
     virtual void        RequestHelp( const HelpEvent& rHEvt ) override;
diff --git a/include/vcl/lstbox.hxx b/include/vcl/lstbox.hxx
index b8df2abc525d..c145f08229cf 100644
--- a/include/vcl/lstbox.hxx
+++ b/include/vcl/lstbox.hxx
@@ -123,7 +123,7 @@ public:
     virtual void        dispose() override;
 
     virtual void        ApplySettings(vcl::RenderContext& rRenderContext) 
override;
-    virtual void        Draw( OutputDevice* pDev, const Point& rPos, const 
Size& rSize, DrawFlags nFlags ) override;
+    virtual void        Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void        Resize() override;
     virtual bool        PreNotify( NotifyEvent& rNEvt ) override;
     virtual void        StateChanged( StateChangedType nType ) override;
diff --git a/include/vcl/scrbar.hxx b/include/vcl/scrbar.hxx
index 68fdf08b49da..e3474ee0ac84 100644
--- a/include/vcl/scrbar.hxx
+++ b/include/vcl/scrbar.hxx
@@ -93,7 +93,7 @@ public:
     virtual void Tracking(const TrackingEvent& rTEvt) override;
     virtual void KeyInput(const KeyEvent& rKEvt) override;
     virtual void Paint(vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect) override;
-    virtual void Draw(OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags) override;
+    virtual void Draw(OutputDevice* pDev, const Point& rPos, DrawFlags nFlags) 
override;
     virtual void Move() override;
     virtual void Resize() override;
     virtual void StateChanged(StateChangedType nType) override;
diff --git a/include/vcl/spinfld.hxx b/include/vcl/spinfld.hxx
index 217e70d314b6..7ef61be4a2d2 100644
--- a/include/vcl/spinfld.hxx
+++ b/include/vcl/spinfld.hxx
@@ -44,7 +44,7 @@ public:
     virtual void    MouseButtonUp( const MouseEvent& rMEvt ) override;
     virtual void    MouseMove( const MouseEvent& rMEvt ) override;
     virtual void    Paint( vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect ) override;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void    Resize() override;
     virtual void    StateChanged( StateChangedType nType ) override;
     virtual void    DataChanged( const DataChangedEvent& rDCEvt ) override;
diff --git a/include/vcl/tabpage.hxx b/include/vcl/tabpage.hxx
index fd2cf24131b5..0dc11e4a561b 100644
--- a/include/vcl/tabpage.hxx
+++ b/include/vcl/tabpage.hxx
@@ -42,7 +42,7 @@ public:
     virtual void    dispose() override;
 
     virtual void    Paint( vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect ) override;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
 
     virtual void    StateChanged( StateChangedType nStateChange ) override;
     virtual void    DataChanged( const DataChangedEvent& rDCEvt ) override;
diff --git a/include/vcl/toolkit/combobox.hxx b/include/vcl/toolkit/combobox.hxx
index 81bd8c2dfc57..9541b116b4c6 100644
--- a/include/vcl/toolkit/combobox.hxx
+++ b/include/vcl/toolkit/combobox.hxx
@@ -58,7 +58,7 @@ public:
     virtual         ~ComboBox() override;
     virtual void    dispose() override;
 
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void    Resize() override;
     virtual bool    EventNotify( NotifyEvent& rNEvt ) override;
     virtual void    StateChanged( StateChangedType nType ) override;
diff --git a/include/vcl/toolkit/dialog.hxx b/include/vcl/toolkit/dialog.hxx
index c16d63e4d7f6..c663f21a2e03 100644
--- a/include/vcl/toolkit/dialog.hxx
+++ b/include/vcl/toolkit/dialog.hxx
@@ -86,7 +86,7 @@ public:
 protected:
     explicit        Dialog( WindowType nType );
     explicit        Dialog( vcl::Window* pParent, const OUString& rID, const 
OUString& rUIXMLDescription);
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void    settingOptimalLayoutSize(Window *pBox) override;
 
 protected:
diff --git a/include/vcl/toolkit/group.hxx b/include/vcl/toolkit/group.hxx
index 29a5cfa25f4e..2bbd344dfda1 100644
--- a/include/vcl/toolkit/group.hxx
+++ b/include/vcl/toolkit/group.hxx
@@ -49,7 +49,7 @@ public:
     explicit        GroupBox( vcl::Window* pParent, WinBits nStyle );
 
     virtual void    Paint( vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect ) override;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void    Resize() override;
     virtual void    StateChanged( StateChangedType nType ) override;
     virtual void    DataChanged( const DataChangedEvent& rDCEvt ) override;
diff --git a/include/vcl/toolkit/imgctrl.hxx b/include/vcl/toolkit/imgctrl.hxx
index 6e7f2c50288a..00ac76faeeb2 100644
--- a/include/vcl/toolkit/imgctrl.hxx
+++ b/include/vcl/toolkit/imgctrl.hxx
@@ -41,7 +41,7 @@ public:
     ::sal_Int16     GetScaleMode() const { return mnScaleMode; }
 
     virtual void    Resize() override;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void    Paint( vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect ) override;
     virtual void    GetFocus() override;
     virtual void    LoseFocus() override;
diff --git a/include/vcl/toolkit/spin.hxx b/include/vcl/toolkit/spin.hxx
index beafb90462a5..cc68f9d87e4c 100644
--- a/include/vcl/toolkit/spin.hxx
+++ b/include/vcl/toolkit/spin.hxx
@@ -61,7 +61,7 @@ public:
 
     virtual void    Resize() override;
     virtual void    Paint( vcl::RenderContext& rRenderContext, const 
tools::Rectangle& rRect ) override;
-    virtual void    Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    virtual void    Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
     virtual void    MouseButtonDown( const MouseEvent& rMEvt ) override;
     virtual void    MouseButtonUp( const MouseEvent& rMEvt ) override;
     virtual void    MouseMove( const MouseEvent& rMEvt ) override;
diff --git a/include/vcl/vclmedit.hxx b/include/vcl/vclmedit.hxx
index 61367af5893e..307d218a5846 100644
--- a/include/vcl/vclmedit.hxx
+++ b/include/vcl/vclmedit.hxx
@@ -158,7 +158,7 @@ public:
     Size            CalcBlockSize( sal_uInt16 nColumns, sal_uInt16 nLines ) 
const;
     void            GetMaxVisColumnsAndLines( sal_uInt16& rnCols, sal_uInt16& 
rnLines ) const;
 
-    void            Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    void            Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
 
     void            DisableSelectionOnFocus();
 
diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index 4b484eacba1c..360c982e818f 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -786,7 +786,7 @@ public:
     using OutputDevice::Erase;
     void                                Erase(vcl::RenderContext& 
rRenderContext);
 
-    virtual void                        Draw( ::OutputDevice* pDev, const 
Point& rPos, const Size& rSize, DrawFlags nFlags );
+    virtual void                        Draw( ::OutputDevice* pDev, const 
Point& rPos, DrawFlags nFlags );
     virtual void                        Move();
     virtual void                        Resize();
     virtual void                        Activate();
diff --git a/svtools/source/brwbox/brwbox2.cxx 
b/svtools/source/brwbox/brwbox2.cxx
index 92cd50a2cc92..e9e725149020 100644
--- a/svtools/source/brwbox/brwbox2.cxx
+++ b/svtools/source/brwbox/brwbox2.cxx
@@ -631,14 +631,13 @@ void BrowseBox::Paint(vcl::RenderContext& rRenderContext, 
const tools::Rectangle
     }
 }
 
-
-void BrowseBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags )
+void BrowseBox::Draw( OutputDevice* pDev, const Point& rPos, DrawFlags nFlags )
 {
     // we need pixel coordinates
-    Size aRealSize = pDev->LogicToPixel(rSize);
+    Size aRealSize = GetSizePixel();
     Point aRealPos = pDev->LogicToPixel(rPos);
 
-    if ((rSize.Width() < 3) || (rSize.Height() < 3))
+    if ((aRealSize.Width() < 3) || (aRealSize.Height() < 3))
         // we want to have two pixels frame ...
         return;
 
@@ -712,9 +711,11 @@ void BrowseBox::Draw( OutputDevice* pDev, const Point& 
rPos, const Size& rSize,
 
         // the header's draw expects logic coordinates, again
         aHeaderPos = pDev->PixelToLogic(aHeaderPos);
-        aHeaderSize = pDev->PixelToLogic(aHeaderSize);
 
-        pBar->Draw(pDev, aHeaderPos, aHeaderSize, nFlags);
+        Size aOrigSize(pBar->GetSizePixel());
+        pBar->SetSizePixel(aHeaderSize);
+        pBar->Draw(pDev, aHeaderPos, nFlags);
+        pBar->SetSizePixel(aOrigSize);
 
         // draw the "upper left cell" (the intersection between the header bar 
and the handle column)
         if (pFirstCol && (pFirstCol->GetId() == 0) && (pFirstCol->Width() > 4))
@@ -771,7 +772,6 @@ void BrowseBox::Draw( OutputDevice* pDev, const Point& 
rPos, const Size& rSize,
     pDev->Pop();
 }
 
-
 void BrowseBox::ImplPaintData(OutputDevice& _rOut, const tools::Rectangle& 
_rRect, bool _bForeignDevice)
 {
     Point aOverallAreaPos = _bForeignDevice ? _rRect.TopLeft() : Point(0,0);
diff --git a/svtools/source/brwbox/ebbcontrols.cxx 
b/svtools/source/brwbox/ebbcontrols.cxx
index 9c398823f8a1..2c6291fd3f7e 100644
--- a/svtools/source/brwbox/ebbcontrols.cxx
+++ b/svtools/source/brwbox/ebbcontrols.cxx
@@ -228,13 +228,11 @@ namespace svt
             pBox->SetZoom(GetZoom());
     }
 
-
-    void CheckBoxControl::Draw( OutputDevice* pDev, const Point& rPos, const 
Size& rSize, DrawFlags nFlags )
+    void CheckBoxControl::Draw( OutputDevice* pDev, const Point& rPos, 
DrawFlags nFlags )
     {
-        pBox->Draw(pDev,rPos,rSize,nFlags);
+        pBox->Draw(pDev, rPos, nFlags);
     }
 
-
     void CheckBoxControl::GetFocus()
     {
         if (pBox)
diff --git a/svx/source/fmcomp/gridcell.cxx b/svx/source/fmcomp/gridcell.cxx
index 0700e03e435c..fcbb633fb003 100644
--- a/svx/source/fmcomp/gridcell.cxx
+++ b/svx/source/fmcomp/gridcell.cxx
@@ -946,7 +946,6 @@ void DbCellControl::AlignControl(sal_Int16 nAlignment)
         lcl_implAlign( m_pPainter, nAlignmentBit );
 }
 
-
 void DbCellControl::PaintCell( OutputDevice& _rDev, const tools::Rectangle& 
_rRect )
 {
     if ( m_pPainter->GetParent() == &_rDev )
@@ -970,10 +969,12 @@ void DbCellControl::PaintCell( OutputDevice& _rDev, const 
tools::Rectangle& _rRe
         m_pPainter->SetParentUpdateMode( true );
     }
     else
-        m_pPainter->Draw( &_rDev, _rRect.TopLeft(), _rRect.GetSize(), 
DrawFlags::NONE );
+    {
+        m_pPainter->SetSizePixel( _rRect.GetSize() );
+        m_pPainter->Draw( &_rDev, _rRect.TopLeft(), DrawFlags::NONE );
+    }
 }
 
-
 void DbCellControl::PaintFieldToCell( OutputDevice& _rDev, const 
tools::Rectangle& _rRect, const Reference< XColumn >& _rxField, const 
Reference< XNumberFormatter >& _rxFormatter )
 {
     m_pPainter->SetText( GetFormatText( _rxField, _rxFormatter ) );
diff --git a/sw/inc/AnnotationWin.hxx b/sw/inc/AnnotationWin.hxx
index 50d2eb010d6a..080d8de42ef0 100644
--- a/sw/inc/AnnotationWin.hxx
+++ b/sw/inc/AnnotationWin.hxx
@@ -176,7 +176,7 @@ class SAL_DLLPUBLIC_RTTI SwAnnotationWin : public 
vcl::Window
         void ChangeSidebarItem( SwSidebarItem const & rSidebarItem );
         virtual css::uno::Reference< css::accessibility::XAccessible > 
CreateAccessible() override;
 
-        virtual void    Draw(OutputDevice* pDev, const Point&, const Size&, 
DrawFlags) override;
+        virtual void    Draw(OutputDevice* pDev, const Point&, DrawFlags) 
override;
         virtual void KeyInput(const KeyEvent& rKeyEvt) override;
         virtual void MouseButtonDown(const MouseEvent& rMouseEvent) override;
         virtual void MouseButtonUp(const MouseEvent& rMouseEvent) override;
diff --git a/sw/source/uibase/docvw/AnnotationWin2.cxx 
b/sw/source/uibase/docvw/AnnotationWin2.cxx
index 335cee087d0e..2801159850ad 100644
--- a/sw/source/uibase/docvw/AnnotationWin2.cxx
+++ b/sw/source/uibase/docvw/AnnotationWin2.cxx
@@ -257,52 +257,52 @@ void SwAnnotationWin::SetCursorLogicPosition(const Point& 
rPosition, bool bPoint
     mpSidebarTextControl->Pop();
 }
 
-void SwAnnotationWin::Draw(OutputDevice* pDev, const Point& rPt, const Size& 
rSz, DrawFlags nInFlags)
+void SwAnnotationWin::Draw(OutputDevice* pDev, const Point& rPt, DrawFlags 
nInFlags)
 {
+    Size aSz = pDev->PixelToLogic(GetSizePixel());
+
     if (mpMetadataAuthor->IsVisible() )
     {
         pDev->SetFillColor(mColorDark);
         pDev->SetLineColor();
-        pDev->DrawRect( tools::Rectangle( rPt, rSz ) );
+        pDev->DrawRect( tools::Rectangle( rPt, aSz ) );
     }
 
     if (mpMetadataAuthor->IsVisible())
     {
         vcl::Font aOrigFont(mpMetadataAuthor->GetControlFont());
-        Size aSize(PixelToLogic(mpMetadataAuthor->GetSizePixel()));
         Point aPos(PixelToLogic(mpMetadataAuthor->GetPosPixel()));
         aPos += rPt;
         vcl::Font aFont( 
mpMetadataAuthor->GetSettings().GetStyleSettings().GetFieldFont() );
         mpMetadataAuthor->SetControlFont( aFont );
-        mpMetadataAuthor->Draw(pDev, aPos, aSize, nInFlags);
+        mpMetadataAuthor->Draw(pDev, aPos, nInFlags);
         mpMetadataAuthor->SetControlFont( aOrigFont );
     }
 
     if (mpMetadataDate->IsVisible())
     {
         vcl::Font aOrigFont(mpMetadataDate->GetControlFont());
-        Size aSize(PixelToLogic(mpMetadataDate->GetSizePixel()));
         Point aPos(PixelToLogic(mpMetadataDate->GetPosPixel()));
         aPos += rPt;
         vcl::Font aFont( 
mpMetadataDate->GetSettings().GetStyleSettings().GetFieldFont() );
         mpMetadataDate->SetControlFont( aFont );
-        mpMetadataDate->Draw(pDev, aPos, aSize, nInFlags);
         mpMetadataDate->SetControlFont( aOrigFont );
     }
 
     if (mpMetadataResolved->IsVisible())
     {
         vcl::Font aOrigFont(mpMetadataResolved->GetControlFont());
-        Size aSize(PixelToLogic(mpMetadataResolved->GetSizePixel()));
         Point aPos(PixelToLogic(mpMetadataResolved->GetPosPixel()));
         aPos += rPt;
         vcl::Font aFont( 
mpMetadataResolved->GetSettings().GetStyleSettings().GetFieldFont() );
         mpMetadataResolved->SetControlFont( aFont );
-        mpMetadataResolved->Draw(pDev, aPos, aSize, nInFlags);
         mpMetadataResolved->SetControlFont( aOrigFont );
     }
 
-    mpSidebarTextControl->Draw(pDev, rPt, rSz, nInFlags);
+    Size aOrigSize(mpSidebarTextControl->GetSizePixel());
+    mpSidebarTextControl->SetSizePixel(aSz);
+    mpSidebarTextControl->Draw(pDev, rPt, nInFlags);
+    mpSidebarTextControl->SetSizePixel(aOrigSize);
 
     const drawinglayer::geometry::ViewInformation2D aNewViewInfos;
     std::unique_ptr<drawinglayer::processor2d::BaseProcessor2D> pProcessor(
@@ -322,7 +322,6 @@ void SwAnnotationWin::Draw(OutputDevice* pDev, const Point& 
rPt, const Size& rSz
     Color aOrigBg( mpMetadataDate->GetControlBackground() );
     OUString sOrigText(mpMetadataDate->GetText());
 
-    Size aSize(PixelToLogic(mpMenuButton->GetSizePixel()));
     Point aPos(PixelToLogic(mpMenuButton->GetPosPixel()));
     aPos += rPt;
 
@@ -330,12 +329,14 @@ void SwAnnotationWin::Draw(OutputDevice* pDev, const 
Point& rPt, const Size& rSz
     mpMetadataDate->SetControlFont( aFont );
     mpMetadataDate->SetControlBackground( Color(0xFFFFFF) );
     mpMetadataDate->SetText("...");
-    mpMetadataDate->Draw(pDev, aPos, aSize, nInFlags);
+    aOrigSize = mpMetadataDate->GetSizePixel();
+    mpMetadataDate->SetSizePixel(mpMenuButton->GetSizePixel());
+    mpMetadataDate->Draw(pDev, aPos, nInFlags);
+    mpMetadataDate->SetSizePixel(aOrigSize);
 
     mpMetadataDate->SetText(sOrigText);
     mpMetadataDate->SetControlFont( aOrigFont );
     mpMetadataDate->SetControlBackground( aOrigBg );
-
 }
 
 void SwAnnotationWin::KeyInput(const KeyEvent& rKeyEvent)
diff --git a/sw/source/uibase/docvw/PostItMgr.cxx 
b/sw/source/uibase/docvw/PostItMgr.cxx
index 2c96a0498f7b..1d68a7c9465f 100644
--- a/sw/source/uibase/docvw/PostItMgr.cxx
+++ b/sw/source/uibase/docvw/PostItMgr.cxx
@@ -963,8 +963,7 @@ void SwPostItMgr::DrawNotesForPage(OutputDevice *pOutDev, 
sal_uInt32 nPage)
         if (!pPostIt)
             continue;
         Point aPoint(mpEditWin->PixelToLogic(pPostIt->GetPosPixel()));
-        Size aSize(pPostIt->PixelToLogic(pPostIt->GetSizePixel()));
-        pPostIt->Draw(pOutDev, aPoint, aSize, DrawFlags::NONE);
+        pPostIt->Draw(pOutDev, aPoint, DrawFlags::NONE);
     }
 }
 
diff --git a/sw/source/uibase/docvw/SidebarTxtControl.cxx 
b/sw/source/uibase/docvw/SidebarTxtControl.cxx
index 544b3c6fc403..65c67d0983a5 100644
--- a/sw/source/uibase/docvw/SidebarTxtControl.cxx
+++ b/sw/source/uibase/docvw/SidebarTxtControl.cxx
@@ -129,11 +129,10 @@ void SidebarTextControl::RequestHelp(const HelpEvent 
&rEvt)
     }
 }
 
-void SidebarTextControl::Draw(OutputDevice* pDev, const Point& rPt, const 
Size& rSz, DrawFlags)
+void SidebarTextControl::Draw(OutputDevice* pDev, const Point& rPt, DrawFlags)
 {
     //Take the control's height, but overwrite the scrollbar area if there was 
one
     Size aSize(PixelToLogic(GetSizePixel()));
-    aSize.setWidth( rSz.Width() );
 
     if ( GetTextView() )
     {
diff --git a/sw/source/uibase/docvw/SidebarTxtControl.hxx 
b/sw/source/uibase/docvw/SidebarTxtControl.hxx
index af2d2ff6747e..ab9c7604ee60 100644
--- a/sw/source/uibase/docvw/SidebarTxtControl.hxx
+++ b/sw/source/uibase/docvw/SidebarTxtControl.hxx
@@ -67,7 +67,7 @@ class SidebarTextControl : public Control
 
         virtual css::uno::Reference< css::accessibility::XAccessible > 
CreateAccessible() override;
 
-        virtual void Draw(OutputDevice* pDev, const Point&, const Size&, 
DrawFlags) override;
+        virtual void Draw(OutputDevice* pDev, const Point&, DrawFlags) 
override;
 };
 
 } // end of namespace sw::sidebarwindows
diff --git a/toolkit/inc/controls/filectrl.hxx 
b/toolkit/inc/controls/filectrl.hxx
index 2aea66f3936e..1ffcb67e3441 100644
--- a/toolkit/inc/controls/filectrl.hxx
+++ b/toolkit/inc/controls/filectrl.hxx
@@ -58,7 +58,7 @@ public:
     Edit&           GetEdit() { return *maEdit; }
     PushButton&     GetButton() { return *maButton; }
 
-    void            Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags ) override;
+    void            Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags ) override;
 
     void            SetText( const OUString& rStr ) override;
     OUString        GetText() const override;
diff --git a/toolkit/source/awt/vclxtabpagecontainer.cxx 
b/toolkit/source/awt/vclxtabpagecontainer.cxx
index bc5d19964d2e..d51fedcff6a2 100644
--- a/toolkit/source/awt/vclxtabpagecontainer.cxx
+++ b/toolkit/source/awt/vclxtabpagecontainer.cxx
@@ -64,12 +64,8 @@ void SAL_CALL VCLXTabPageContainer::draw( sal_Int32 nX, 
sal_Int32 nY )
         if (pTabPage && pDev)
         {
             ::Point aPos( nX, nY );
-            ::Size  aSize = pTabPage->GetSizePixel();
-
             aPos  = pDev->PixelToLogic( aPos );
-            aSize = pDev->PixelToLogic( aSize );
-
-            pTabPage->Draw( pDev, aPos, aSize, DrawFlags::NONE );
+            pTabPage->Draw( pDev, aPos, DrawFlags::NONE );
         }
     }
 
diff --git a/toolkit/source/awt/vclxwindow.cxx 
b/toolkit/source/awt/vclxwindow.cxx
index 8aeb3a49679f..8c7b306b084e 100644
--- a/toolkit/source/awt/vclxwindow.cxx
+++ b/toolkit/source/awt/vclxwindow.cxx
@@ -2217,12 +2217,8 @@ void VCLXWindow::draw( sal_Int32 nX, sal_Int32 nY )
         if ( pTabPage )
         {
             Point aPos( nX, nY );
-            Size  aSize = pWindow->GetSizePixel();
-
-            aPos  = pDev->PixelToLogic( aPos );
-            aSize = pDev->PixelToLogic( aSize );
-
-            pTabPage->Draw( pDev, aPos, aSize, DrawFlags::NONE );
+            aPos = pDev->PixelToLogic( aPos );
+            pTabPage->Draw( pDev, aPos, DrawFlags::NONE );
             return;
         }
 
@@ -2269,8 +2265,6 @@ void VCLXWindow::draw( sal_Int32 nX, sal_Int32 nY )
         }
         else if ( pDev )
         {
-            Size aSz = pWindow->GetSizePixel();
-            aSz = pDev->PixelToLogic( aSz );
             Point aP = pDev->PixelToLogic( aPos );
 
             vcl::PDFExtOutDevData* pPDFExport   = 
dynamic_cast<vcl::PDFExtOutDevData*>(pDev->GetExtOutDevData());
@@ -2279,7 +2273,7 @@ void VCLXWindow::draw( sal_Int32 nX, sal_Int32 nY )
                                || ( pPDFExport != nullptr );
             if ( bDrawSimple )
             {
-                pWindow->Draw( pDev, aP, aSz, DrawFlags::NoControls );
+                pWindow->Draw( pDev, aP, DrawFlags::NoControls );
             }
             else
             {
diff --git a/toolkit/source/awt/vclxwindows.cxx 
b/toolkit/source/awt/vclxwindows.cxx
index ab190525b478..fd47e1d2275e 100644
--- a/toolkit/source/awt/vclxwindows.cxx
+++ b/toolkit/source/awt/vclxwindows.cxx
@@ -2386,10 +2386,8 @@ void SAL_CALL VCLXDialog::draw( sal_Int32 nX, sal_Int32 
nY )
         if ( !pDev )
             pDev = pWindow->GetParent();
 
-        Size aSize = pDev->PixelToLogic( pWindow->GetSizePixel() );
         Point aPos = pDev->PixelToLogic( Point( nX, nY ) );
-
-        pWindow->Draw( pDev, aPos, aSize, DrawFlags::NoControls );
+        pWindow->Draw( pDev, aPos, DrawFlags::NoControls );
     }
 }
 
@@ -2509,10 +2507,8 @@ void SAL_CALL VCLXMultiPage::draw( sal_Int32 nX, 
sal_Int32 nY )
         if ( !pDev )
             pDev = pWindow->GetParent();
 
-        Size aSize = pDev->PixelToLogic( pWindow->GetSizePixel() );
         Point aPos = pDev->PixelToLogic( Point( nX, nY ) );
-
-        pWindow->Draw( pDev, aPos, aSize, DrawFlags::NoControls );
+        pWindow->Draw( pDev, aPos, DrawFlags::NoControls );
     }
 }
 
@@ -2756,10 +2752,8 @@ void SAL_CALL VCLXTabPage::draw( sal_Int32 nX, sal_Int32 
nY )
         if ( !pDev )
             pDev = pWindow->GetParent();
 
-        Size aSize = pDev->PixelToLogic( pWindow->GetSizePixel() );
         Point aPos = pDev->PixelToLogic( Point( nX, nY ) );
-
-        pWindow->Draw( pDev, aPos, aSize, DrawFlags::NoControls );
+        pWindow->Draw( pDev, aPos, DrawFlags::NoControls );
     }
 }
 
@@ -6618,10 +6612,8 @@ void SAL_CALL VCLXFrame::draw( sal_Int32 nX, sal_Int32 
nY )
         if ( !pDev )
             pDev = pWindow->GetParent();
 
-        Size aSize = pDev->PixelToLogic( pWindow->GetSizePixel() );
         Point aPos = pDev->PixelToLogic( Point( nX, nY ) );
-
-        pWindow->Draw( pDev, aPos, aSize, DrawFlags::NoControls );
+        pWindow->Draw( pDev, aPos, DrawFlags::NoControls );
     }
 }
 
diff --git a/toolkit/source/controls/filectrl.cxx 
b/toolkit/source/controls/filectrl.cxx
index 3757f91da678..9f6dce0accc8 100644
--- a/toolkit/source/controls/filectrl.cxx
+++ b/toolkit/source/controls/filectrl.cxx
@@ -187,12 +187,15 @@ void FileControl::SetEditModifyHdl( const 
Link<Edit&,void>& rLink )
     maEdit->SetModifyHdl(rLink);
 }
 
-void FileControl::Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags )
+void FileControl::Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags )
 {
     WinBits nOldEditStyle = GetEdit().GetStyle();
     if ( GetStyle() & WB_BORDER )
         GetEdit().SetStyle( nOldEditStyle|WB_BORDER );
-    GetEdit().Draw( pDev, rPos, rSize, nFlags );
+    Size aOrigSize(GetEdit().GetSizePixel());
+    GetEdit().SetSizePixel(GetSizePixel());
+    GetEdit().Draw( pDev, rPos, nFlags );
+    GetEdit().SetSizePixel(aOrigSize);
     if ( GetStyle() & WB_BORDER )
         GetEdit().SetStyle( nOldEditStyle );
 }
diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx
index a0b65b900208..e6d52df0630a 100644
--- a/vcl/source/control/button.cxx
+++ b/vcl/source/control/button.cxx
@@ -1288,11 +1288,11 @@ void PushButton::Paint(vcl::RenderContext& 
rRenderContext, const tools::Rectangl
     ImplDrawPushButton(rRenderContext);
 }
 
-void PushButton::Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize,
+void PushButton::Draw( OutputDevice* pDev, const Point& rPos,
                        DrawFlags nFlags )
 {
     Point       aPos  = pDev->LogicToPixel( rPos );
-    Size        aSize = pDev->LogicToPixel( rSize );
+    Size        aSize = GetSizePixel();
     tools::Rectangle   aRect( aPos, aSize );
     vcl::Font   aFont = GetDrawPixelFont( pDev );
 
@@ -2349,14 +2349,14 @@ void RadioButton::Paint( vcl::RenderContext& 
rRenderContext, const tools::Rectan
     ImplDrawRadioButton(rRenderContext);
 }
 
-void RadioButton::Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize,
+void RadioButton::Draw( OutputDevice* pDev, const Point& rPos,
                         DrawFlags nFlags )
 {
     if ( !maImage )
     {
         MapMode     aResMapMode( MapUnit::Map100thMM );
         Point       aPos  = pDev->LogicToPixel( rPos );
-        Size        aSize = pDev->LogicToPixel( rSize );
+        Size        aSize = GetSizePixel();
         Size        aImageSize = pDev->LogicToPixel( Size( 300, 300 ), 
aResMapMode );
         Size        aBrd1Size = pDev->LogicToPixel( Size( 20, 20 ), 
aResMapMode );
         Size        aBrd2Size = pDev->LogicToPixel( Size( 60, 60 ), 
aResMapMode );
@@ -3197,12 +3197,12 @@ void CheckBox::Paint(vcl::RenderContext& 
rRenderContext, const tools::Rectangle&
     ImplDrawCheckBox(rRenderContext);
 }
 
-void CheckBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
+void CheckBox::Draw( OutputDevice* pDev, const Point& rPos,
                      DrawFlags nFlags )
 {
     MapMode     aResMapMode( MapUnit::Map100thMM );
     Point       aPos  = pDev->LogicToPixel( rPos );
-    Size        aSize = pDev->LogicToPixel( rSize );
+    Size        aSize = GetSizePixel();
     Size        aImageSize = pDev->LogicToPixel( Size( 300, 300 ), aResMapMode 
);
     Size        aBrd1Size = pDev->LogicToPixel( Size( 20, 20 ), aResMapMode );
     Size        aBrd2Size = pDev->LogicToPixel( Size( 30, 30 ), aResMapMode );
diff --git a/vcl/source/control/combobox.cxx b/vcl/source/control/combobox.cxx
index 1ca1d398a676..18913f77eafd 100644
--- a/vcl/source/control/combobox.cxx
+++ b/vcl/source/control/combobox.cxx
@@ -1145,12 +1145,12 @@ void ComboBox::GetMaxVisColumnsAndLines( sal_uInt16& 
rnCols, sal_uInt16& rnLines
     }
 }
 
-void ComboBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, 
DrawFlags nFlags )
+void ComboBox::Draw( OutputDevice* pDev, const Point& rPos, DrawFlags nFlags )
 {
     m_pImpl->m_pImplLB->GetMainWindow()->ApplySettings(*pDev);
 
     Point aPos = pDev->LogicToPixel( rPos );
-    Size aSize = pDev->LogicToPixel( rSize );
+    Size aSize = GetSizePixel();
     vcl::Font aFont = m_pImpl->m_pImplLB->GetMainWindow()->GetDrawPixelFont( 
pDev );
 
     pDev->Push();
@@ -1187,7 +1187,10 @@ void ComboBox::Draw( OutputDevice* pDev, const Point& 
rPos, const Size& rSize, D
         DrawTextFlags nTextStyle = DrawTextFlags::VCenter;
 
         // First, draw the edit part
-        m_pImpl->m_pSubEdit->Draw( pDev, aPos, Size( aSize.Width(), 
nEditHeight ), nFlags );
+        Size aOrigSize(m_pImpl->m_pSubEdit->GetSizePixel());
+        m_pImpl->m_pSubEdit->SetSizePixel(Size(aSize.Width(), nEditHeight));
+        m_pImpl->m_pSubEdit->Draw( pDev, aPos, nFlags );
+        m_pImpl->m_pSubEdit->SetSizePixel(aOrigSize);
 
         // Second, draw the listbox
         if ( GetStyle() & WB_CENTER )
@@ -1242,10 +1245,12 @@ void ComboBox::Draw( OutputDevice* pDev, const Point& 
rPos, const Size& rSize, D
     // Call Edit::Draw after restoring the MapMode...
     if ( IsDropDownBox() )
     {
-        m_pImpl->m_pSubEdit->Draw( pDev, rPos, rSize, nFlags );
+        Size aOrigSize(m_pImpl->m_pSubEdit->GetSizePixel());
+        m_pImpl->m_pSubEdit->SetSizePixel(GetSizePixel());
+        m_pImpl->m_pSubEdit->Draw( pDev, rPos, nFlags );
+        m_pImpl->m_pSubEdit->SetSizePixel(aOrigSize);
         // DD-Button ?
     }
-
 }
 
 void ComboBox::SetUserDrawHdl(const Link<UserDrawEvent*, void>& rLink)
diff --git a/vcl/source/control/edit.cxx b/vcl/source/control/edit.cxx
index 3f8cbaffb36d..fe79d666f68a 100644
--- a/vcl/source/control/edit.cxx
+++ b/vcl/source/control/edit.cxx
@@ -1733,12 +1733,12 @@ void Edit::Resize()
     }
 }
 
-void Edit::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, 
DrawFlags nFlags )
+void Edit::Draw( OutputDevice* pDev, const Point& rPos, DrawFlags nFlags )
 {
     ApplySettings(*pDev);
 
     Point aPos = pDev->LogicToPixel( rPos );
-    Size aSize = pDev->LogicToPixel( rSize );
+    Size aSize = GetSizePixel();
     vcl::Font aFont = GetDrawPixelFont( pDev );
 
     pDev->Push();
@@ -1817,7 +1817,10 @@ void Edit::Draw( OutputDevice* pDev, const Point& rPos, 
const Size& rSize, DrawF
 
     if ( GetSubEdit() )
     {
-        GetSubEdit()->Draw( pDev, rPos, rSize, nFlags );
+        Size aOrigSize(GetSubEdit()->GetSizePixel());
+        GetSubEdit()->SetSizePixel(GetSizePixel());
+        GetSubEdit()->Draw(pDev, rPos, nFlags);
+        GetSubEdit()->SetSizePixel(aOrigSize);
     }
 }
 
diff --git a/vcl/source/control/fixed.cxx b/vcl/source/control/fixed.cxx
index d64494e179a6..4a3b7c10d0b6 100644
--- a/vcl/source/control/fixed.cxx
+++ b/vcl/source/control/fixed.cxx
@@ -199,13 +199,13 @@ void FixedText::Paint( vcl::RenderContext& 
rRenderContext, const tools::Rectangl
     ImplDraw(&rRenderContext, DrawFlags::NONE, Point(), GetOutputSizePixel());
 }
 
-void FixedText::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
+void FixedText::Draw( OutputDevice* pDev, const Point& rPos,
                       DrawFlags nFlags )
 {
     ApplySettings(*pDev);
 
     Point       aPos  = pDev->LogicToPixel( rPos );
-    Size        aSize = pDev->LogicToPixel( rSize );
+    Size        aSize = GetSizePixel();
     vcl::Font   aFont = GetDrawPixelFont( pDev );
 
     pDev->Push();
@@ -590,7 +590,7 @@ void FixedLine::Paint(vcl::RenderContext& rRenderContext, 
const tools::Rectangle
     ImplDraw(rRenderContext);
 }
 
-void FixedLine::Draw( OutputDevice*, const Point&, const Size&, DrawFlags )
+void FixedLine::Draw( OutputDevice*, const Point&, DrawFlags )
 {
 }
 
@@ -719,11 +719,11 @@ void FixedBitmap::Paint(vcl::RenderContext& 
rRenderContext, const tools::Rectang
     ImplDraw(&rRenderContext, Point(), GetOutputSizePixel());
 }
 
-void FixedBitmap::Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize,
+void FixedBitmap::Draw( OutputDevice* pDev, const Point& rPos,
                         DrawFlags )
 {
     Point       aPos  = pDev->LogicToPixel( rPos );
-    Size        aSize = pDev->LogicToPixel( rSize );
+    Size        aSize = GetSizePixel();
     tools::Rectangle   aRect( aPos, aSize );
 
     pDev->Push();
@@ -866,11 +866,11 @@ Size FixedImage::GetOptimalSize() const
     return maImage.GetSizePixel();
 }
 
-void FixedImage::Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize,
+void FixedImage::Draw( OutputDevice* pDev, const Point& rPos,
                        DrawFlags )
 {
     Point       aPos  = pDev->LogicToPixel( rPos );
-    Size        aSize = pDev->LogicToPixel( rSize );
+    Size        aSize = GetSizePixel();
     tools::Rectangle   aRect( aPos, aSize );
 
     pDev->Push();
diff --git a/vcl/source/control/imgctrl.cxx b/vcl/source/control/imgctrl.cxx
index 3c60d92a4429..4ecda5b1ee99 100644
--- a/vcl/source/control/imgctrl.cxx
+++ b/vcl/source/control/imgctrl.cxx
@@ -149,10 +149,10 @@ void ImageControl::Paint(vcl::RenderContext& 
rRenderContext, const tools::Rectan
 
 }
 
-void ImageControl::Draw( OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags )
+void ImageControl::Draw( OutputDevice* pDev, const Point& rPos, DrawFlags )
 {
     const Point     aPos  = pDev->LogicToPixel( rPos );
-    const Size      aSize = pDev->LogicToPixel( rSize );
+    const Size      aSize = GetSizePixel();
     tools::Rectangle aRect( aPos, aSize );
 
     pDev->Push();
diff --git a/vcl/source/control/listbox.cxx b/vcl/source/control/listbox.cxx
index 7dae30310bb9..ff80f5757cce 100644
--- a/vcl/source/control/listbox.cxx
+++ b/vcl/source/control/listbox.cxx
@@ -315,12 +315,12 @@ void ListBox::ApplySettings(vcl::RenderContext& 
rRenderContext)
     rRenderContext.SetBackground();
 }
 
-void ListBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, 
DrawFlags nFlags )
+void ListBox::Draw( OutputDevice* pDev, const Point& rPos, DrawFlags nFlags )
 {
     mpImplLB->GetMainWindow()->ApplySettings(*pDev);
 
     Point aPos = pDev->LogicToPixel( rPos );
-    Size aSize = pDev->LogicToPixel( rSize );
+    Size aSize = GetSizePixel();
     vcl::Font aFont = mpImplLB->GetMainWindow()->GetDrawPixelFont( pDev );
 
     pDev->Push();
diff --git a/vcl/source/control/scrbar.cxx b/vcl/source/control/scrbar.cxx
index 6d313b0ffe1e..8e008465e279 100644
--- a/vcl/source/control/scrbar.cxx
+++ b/vcl/source/control/scrbar.cxx
@@ -370,7 +370,7 @@ void ScrollBar::ImplCalc( bool bUpdate )
     ImplUpdateRects( bUpdate );
 }
 
-void ScrollBar::Draw( OutputDevice* pDev, const Point& rPos, const Size& /* 
rSize */, DrawFlags nFlags )
+void ScrollBar::Draw( OutputDevice* pDev, const Point& rPos, DrawFlags nFlags )
 {
     Point aPos  = pDev->LogicToPixel( rPos );
 
diff --git a/vcl/source/control/spinbtn.cxx b/vcl/source/control/spinbtn.cxx
index 826cb3188ac9..35e67a1b557a 100644
--- a/vcl/source/control/spinbtn.cxx
+++ b/vcl/source/control/spinbtn.cxx
@@ -120,10 +120,10 @@ void SpinButton::Resize()
     Invalidate();
 }
 
-void SpinButton::Draw(OutputDevice* pDev, const Point& rPos, const Size& 
rSize, DrawFlags nFlags)
+void SpinButton::Draw(OutputDevice* pDev, const Point& rPos, DrawFlags nFlags)
 {
     Point aPos  = pDev->LogicToPixel(rPos);
-    Size aSize = pDev->LogicToPixel(rSize);
+    Size aSize = GetSizePixel();
 
     pDev->Push();
     pDev->SetMapMode();
diff --git a/vcl/source/control/spinfld.cxx b/vcl/source/control/spinfld.cxx
index 2d91b22201da..175c0828a540 100644
--- a/vcl/source/control/spinfld.cxx
+++ b/vcl/source/control/spinfld.cxx
@@ -952,16 +952,16 @@ IMPL_LINK( SpinField, ImplTimeout, Timer*, pTimer, void )
     }
 }
 
-void SpinField::Draw(OutputDevice* pDev, const Point& rPos, const Size& rSize, 
DrawFlags nFlags)
+void SpinField::Draw(OutputDevice* pDev, const Point& rPos, DrawFlags nFlags)
 {
-    Edit::Draw(pDev, rPos, rSize, nFlags);
+    Edit::Draw(pDev, rPos, nFlags);
 
     WinBits nFieldStyle = GetStyle();
     if ( (nFlags & DrawFlags::NoControls ) || !( nFieldStyle & 
(WB_SPIN|WB_DROPDOWN) ) )
         return;
 
     Point aPos = pDev->LogicToPixel( rPos );
-    Size aSize = pDev->LogicToPixel( rSize );
+    Size aSize = GetSizePixel();
     AllSettings aOldSettings = pDev->GetSettings();
 
     pDev->Push();
diff --git a/vcl/source/edit/vclmedit.cxx b/vcl/source/edit/vclmedit.cxx
index fe768e83956b..021ef7658837 100644
--- a/vcl/source/edit/vclmedit.cxx
+++ b/vcl/source/edit/vclmedit.cxx
@@ -1301,12 +1301,12 @@ void VclMultiLineEdit::DataChanged( const 
DataChangedEvent& rDCEvt )
         Control::DataChanged( rDCEvt );
 }
 
-void VclMultiLineEdit::Draw( OutputDevice* pDev, const Point& rPos, const 
Size& rSize, DrawFlags nFlags )
+void VclMultiLineEdit::Draw( OutputDevice* pDev, const Point& rPos, DrawFlags 
nFlags )
 {
     ImplInitSettings(true);
 
     Point aPos = pDev->LogicToPixel( rPos );
-    Size aSize = pDev->LogicToPixel( rSize );
+    Size aSize = GetSizePixel();
 
     vcl::Font aFont = pImpVclMEdit->GetTextWindow()->GetDrawPixelFont(pDev);
     aFont.SetTransparent( true );
diff --git a/vcl/source/toolkit/group.cxx b/vcl/source/toolkit/group.cxx
index 0743518f8ba1..ef7b28794e48 100644
--- a/vcl/source/toolkit/group.cxx
+++ b/vcl/source/toolkit/group.cxx
@@ -178,11 +178,11 @@ void GroupBox::Paint( vcl::RenderContext& rRenderContext, 
const tools::Rectangle
     ImplDraw(&rRenderContext, DrawFlags::NONE, Point(), GetOutputSizePixel());
 }
 
-void GroupBox::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
+void GroupBox::Draw( OutputDevice* pDev, const Point& rPos,
                      DrawFlags nFlags )
 {
     Point       aPos  = pDev->LogicToPixel( rPos );
-    Size        aSize = pDev->LogicToPixel( rSize );
+    Size        aSize = GetSizePixel();
     vcl::Font   aFont = GetDrawPixelFont( pDev );
 
     pDev->Push();
diff --git a/vcl/source/treelist/headbar.cxx b/vcl/source/treelist/headbar.cxx
index 6f9ec3a0e842..e87790e9dd97 100644
--- a/vcl/source/treelist/headbar.cxx
+++ b/vcl/source/treelist/headbar.cxx
@@ -874,11 +874,11 @@ void HeaderBar::Paint(vcl::RenderContext& rRenderContext, 
const tools::Rectangle
         ImplDrawItem(rRenderContext, i, (i == nCurItemPos), &rRect);
 }
 
-void HeaderBar::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize,
+void HeaderBar::Draw( OutputDevice* pDev, const Point& rPos,
                       DrawFlags nFlags )
 {
     Point       aPos  = pDev->LogicToPixel( rPos );
-    Size        aSize = pDev->LogicToPixel( rSize );
+    Size        aSize = GetSizePixel();
     tools::Rectangle   aRect( aPos, aSize );
     vcl::Font   aFont = GetDrawPixelFont( pDev );
 
diff --git a/vcl/source/window/dialog.cxx b/vcl/source/window/dialog.cxx
index 53f2a4e80778..b1d06a5e6168 100644
--- a/vcl/source/window/dialog.cxx
+++ b/vcl/source/window/dialog.cxx
@@ -1301,10 +1301,10 @@ void Dialog::GetDrawWindowBorder( sal_Int32& 
rLeftBorder, sal_Int32& rTopBorder,
     aImplWin->GetBorder( rLeftBorder, rTopBorder, rRightBorder, rBottomBorder 
);
 }
 
-void Dialog::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, 
DrawFlags )
+void Dialog::Draw( OutputDevice* pDev, const Point& rPos, DrawFlags )
 {
     Point aPos = pDev->LogicToPixel( rPos );
-    Size aSize = pDev->LogicToPixel( rSize );
+    Size aSize = GetSizePixel();
 
     Wallpaper aWallpaper = GetBackground();
     if ( !aWallpaper.IsBitmap() )
diff --git a/vcl/source/window/tabpage.cxx b/vcl/source/window/tabpage.cxx
index 365feaf4ce53..e4d09cc89b59 100644
--- a/vcl/source/window/tabpage.cxx
+++ b/vcl/source/window/tabpage.cxx
@@ -141,10 +141,10 @@ void TabPage::Paint( vcl::RenderContext& rRenderContext, 
const tools::Rectangle&
     }
 }
 
-void TabPage::Draw( OutputDevice* pDev, const Point& rPos, const Size& rSize, 
DrawFlags )
+void TabPage::Draw( OutputDevice* pDev, const Point& rPos, DrawFlags )
 {
     Point aPos = pDev->LogicToPixel( rPos );
-    Size aSize = pDev->LogicToPixel( rSize );
+    Size aSize = GetSizePixel();
 
     Wallpaper aWallpaper = GetBackground();
     if ( !aWallpaper.IsBitmap() )
diff --git a/vcl/source/window/window.cxx b/vcl/source/window/window.cxx
index 648dbcf52519..82ce1465b9a9 100644
--- a/vcl/source/window/window.cxx
+++ b/vcl/source/window/window.cxx
@@ -1821,7 +1821,7 @@ void Window::KeyUp( const KeyEvent& rKEvt )
         mpWindowImpl->mbKeyUp = true;
 }
 
-void Window::Draw( OutputDevice*, const Point&, const Size&, DrawFlags )
+void Window::Draw( OutputDevice*, const Point&, DrawFlags )
 {
 }
 
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to