split OutputDevice from Window

Desktop / LibreOffice - Noel Grandin [gmail.com] - 17 May 2021 10:56 UTC

as part of a longer-term goal of doing our widget rendering only inside a top-level render-context.

I moved all of the OutputDevice-related code that existed in vcl::Window into a new subclass of OutputDevice called WindowOutputDevice.

Notes for further work

(*) not sure why we are getting an 1x1 surface in SvpSalGraphics::releaseCairoContext, but to fix it I clamp the size there

(*) might have to dump VCLXDevice, and move it's code down into VCLXWindow and VCLXVirtualDevice

(*) can we remove use of VCLXDevice in other places, in favour of just talking to the VCL code?

Change-Id: I105946377f5322677d6f7d0c1c23847178a720b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113204

9090dc1f3b27 split OutputDevice from Window
basctl/source/basicide/baside2b.cxx | 8 +-
basctl/source/basicide/baside3.cxx | 2 +-
basctl/source/basicide/layout.cxx | 4 +-
basctl/source/dlged/dlged.cxx | 4 +-
basctl/source/dlged/dlgedfunc.cxx | 18 +-
basctl/source/dlged/dlgedobj.cxx | 2 +-
basctl/source/dlged/dlgedview.cxx | 2 +-
canvas/source/cairo/cairo_canvas.cxx | 2 +-
canvas/source/cairo/cairo_spritecanvas.cxx | 2 +-
canvas/source/cairo/cairo_spritedevicehelper.cxx | 2 +-
canvas/source/directx/dx_canvas.cxx | 1 +
canvas/source/vcl/canvas.cxx | 1 +
canvas/source/vcl/outdevholder.hxx | 1 +
canvas/source/vcl/spritecanvashelper.cxx | 4 +-
canvas/source/vcl/windowoutdevholder.hxx | 4 +-
canvas/workben/canvasdemo.cxx | 4 +-
.../accessibility/AccessibleTextHelper.cxx | 2 +-
chart2/source/controller/main/ChartController.cxx | 2 +-
.../controller/main/ChartController_Window.cxx | 12 +-
chart2/source/controller/main/ChartWindow.cxx | 4 +-
compilerplugins/clang/vclwidgets.cxx | 12 +-
cppcanvas/qa/unit/test.cxx | 2 +-
cppcanvas/source/wrapper/vclfactory.cxx | 2 +-
dbaccess/source/ui/app/AppView.cxx | 2 +-
dbaccess/source/ui/querydesign/JoinTableView.cxx | 2 +-
dbaccess/source/ui/querydesign/TableWindow.cxx | 2 +-
desktop/source/splash/splash.cxx | 6 +-
editeng/source/editeng/editeng.cxx | 6 +-
editeng/source/editeng/impedit.cxx | 8 +-
editeng/source/editeng/impedit2.cxx | 2 +-
editeng/source/editeng/impedit3.cxx | 3 +-
editeng/source/uno/unoviwou.cxx | 4 +-
forms/source/richtext/richtextimplcontrol.cxx | 6 +-
framework/source/helper/vclstatusindicator.cxx | 2 +-
include/sfx2/LokControlHandler.hxx | 4 +-
include/svtools/brwbox.hxx | 4 -
include/toolkit/awt/vclxwindow.hxx | 10 +-
include/vcl/outdev.hxx | 5 +
include/vcl/toolbox.hxx | 2 +
include/vcl/toolkit/ivctrl.hxx | 2 +-
include/vcl/window.hxx | 179 ++++++++---
.../java/mod/_toolkit/AccessibleFixedText.java | 3 +-
reportdesign/source/ui/inc/UITools.hxx | 2 +-
reportdesign/source/ui/misc/UITools.cxx | 2 +-
reportdesign/source/ui/report/DesignView.cxx | 2 +-
reportdesign/source/ui/report/EndMarker.cxx | 4 +-
reportdesign/source/ui/report/FixedTextColor.cxx | 2 +-
.../source/ui/report/FormattedFieldBeautifier.cxx | 2 +-
reportdesign/source/ui/report/ReportController.cxx | 6 +-
reportdesign/source/ui/report/ReportSection.cxx | 2 +-
reportdesign/source/ui/report/ScrollHelper.cxx | 2 +-
reportdesign/source/ui/report/SectionView.cxx | 4 +-
reportdesign/source/ui/report/StartMarker.cxx | 2 +-
reportdesign/source/ui/report/dlgedfunc.cxx | 8 +-
.../ui/Accessibility/AccessibleEditObject.cxx | 2 +-
sc/source/ui/app/scmod.cxx | 2 +-
sc/source/ui/drawfunc/fuconpol.cxx | 6 +-
sc/source/ui/drawfunc/fudraw.cxx | 4 +-
sc/source/ui/drawfunc/fusel.cxx | 2 +-
sc/source/ui/drawfunc/futext.cxx | 10 +-
sc/source/ui/drawfunc/futext2.cxx | 2 +-
sc/source/ui/unoobj/viewuno.cxx | 4 +-
sc/source/ui/view/colrowba.cxx | 4 +-
sc/source/ui/view/drawview.cxx | 2 +-
sc/source/ui/view/gridwin.cxx | 26 +-
sc/source/ui/view/gridwin2.cxx | 4 +-
sc/source/ui/view/gridwin3.cxx | 2 +-
sc/source/ui/view/gridwin4.cxx | 10 +-
sc/source/ui/view/gridwin5.cxx | 2 +-
sc/source/ui/view/gridwin_dbgutil.cxx | 2 +-
sc/source/ui/view/hdrcont.cxx | 46 +--
sc/source/ui/view/notemark.cxx | 8 +-
sc/source/ui/view/olinewin.cxx | 32 +-
sc/source/ui/view/preview.cxx | 82 +++---
sc/source/ui/view/prevwsh.cxx | 4 +-
sc/source/ui/view/spelldialog.cxx | 2 +-
sc/source/ui/view/tabsplit.cxx | 2 +-
sc/source/ui/view/tabview5.cxx | 10 +-
sc/source/ui/view/tabvwsh2.cxx | 2 +-
sc/source/ui/view/viewdata.cxx | 8 +-
sc/source/ui/view/viewfun4.cxx | 4 +-
.../accessibility/AccessibleDocumentViewBase.cxx | 2 +-
.../ui/accessibility/AccessibleViewForwarder.cxx | 3 +-
sd/source/ui/animations/motionpathtag.cxx | 4 +-
sd/source/ui/annotations/annotationtag.cxx | 5 +-
sd/source/ui/dlg/animobjs.cxx | 2 +-
sd/source/ui/func/fuconbez.cxx | 4 +-
sd/source/ui/func/fudraw.cxx | 6 +-
sd/source/ui/func/fuediglu.cxx | 10 +-
sd/source/ui/func/fusnapln.cxx | 2 +-
sd/source/ui/func/futext.cxx | 4 +-
sd/source/ui/slideshow/showwin.cxx | 34 +--
sd/source/ui/slideshow/slideshow.cxx | 2 +-
sd/source/ui/slideshow/slideshowimpl.cxx | 8 +-
.../controller/SlideSorterController.cxx | 6 +-
.../ui/slidesorter/shell/SlideSorterViewShell.cxx | 8 +-
sd/source/ui/slidesorter/view/SlideSorterView.cxx | 4 +-
.../ui/slidesorter/view/SlsInsertAnimator.cxx | 2 +-
.../view/SlsInsertionIndicatorOverlay.cxx | 2 +-
sd/source/ui/slidesorter/view/SlsLayeredDevice.cxx | 8 +-
.../ui/slidesorter/view/SlsPageObjectLayouter.cxx | 2 +-
.../ui/slidesorter/view/SlsPageObjectPainter.cxx | 2 +-
sd/source/ui/unoidl/DrawController.cxx | 4 +-
sd/source/ui/view/WindowUpdater.cxx | 4 +-
sd/source/ui/view/drviews1.cxx | 2 +-
sd/source/ui/view/drviews2.cxx | 2 +-
sd/source/ui/view/drviews3.cxx | 2 +-
sd/source/ui/view/drviews4.cxx | 4 +-
sd/source/ui/view/drviews5.cxx | 12 +-
sd/source/ui/view/drviewsa.cxx | 2 +-
sd/source/ui/view/drviewsf.cxx | 2 +-
sd/source/ui/view/drviewsh.cxx | 4 +-
sd/source/ui/view/outlview.cxx | 4 +-
sd/source/ui/view/sdview.cxx | 3 +-
sd/source/ui/view/sdview4.cxx | 2 +-
sd/source/ui/view/sdwindow.cxx | 6 +-
sd/source/ui/view/viewoverlaymanager.cxx | 2 +-
sd/source/ui/view/viewshe2.cxx | 16 +-
sd/source/ui/view/viewshel.cxx | 4 +-
sfx2/source/doc/doctemplates.cxx | 2 +-
sfx2/source/sidebar/SidebarController.cxx | 2 +-
starmath/source/document.cxx | 2 +-
svtools/source/brwbox/brwbox1.cxx | 6 +-
svtools/source/brwbox/brwbox2.cxx | 18 +-
svtools/source/brwbox/brwbox3.cxx | 2 +-
svtools/source/brwbox/datwin.cxx | 6 +-
svtools/source/brwbox/editbrowsebox.cxx | 10 +-
svtools/source/control/ruler.cxx | 16 +-
svtools/source/control/tabbar.cxx | 38 +--
svtools/source/table/tablecontrol.cxx | 2 +-
svtools/source/table/tabledatawindow.cxx | 4 +-
.../accessibility/AccessibleControlShape.cxx | 6 +-
svx/source/accessibility/AccessibleShape.cxx | 4 +-
.../accessibility/GraphCtlAccessibleContext.cxx | 2 +-
svx/source/dialog/svxruler.cxx | 4 +-
svx/source/fmcomp/gridcell.cxx | 12 +-
svx/source/fmcomp/gridctrl.cxx | 6 +-
svx/source/form/fmshell.cxx | 4 +-
svx/source/form/fmshimp.cxx | 2 +-
svx/source/form/fmview.cxx | 6 +-
svx/source/form/fmvwimp.cxx | 14 +-
svx/source/form/navigatortree.cxx | 4 +-
.../sdr/contact/viewobjectcontactofsdrmediaobj.cxx | 2 +-
.../sdr/contact/viewobjectcontactofunocontrol.cxx | 8 +-
svx/source/sdr/overlay/overlaymanager.cxx | 2 +-
svx/source/sdr/overlay/overlaymanagerbuffered.cxx | 10 +-
svx/source/svdraw/sdrpagewindow.cxx | 4 +-
svx/source/svdraw/sdrpaintwindow.cxx | 6 +-
svx/source/svdraw/svdedxv.cxx | 47 +--
svx/source/svdraw/svdmrkv.cxx | 9 +-
svx/source/svdraw/svdpntv.cxx | 18 +-
svx/source/svdraw/svdview.cxx | 16 +-
svx/source/table/accessiblecell.cxx | 2 +-
svx/source/table/tablecontroller.cxx | 2 +-
svx/source/tbxctrls/tbxcolorupdate.cxx | 2 +-
sw/source/core/access/accmap.cxx | 6 +-
sw/source/core/crsr/viscrs.cxx | 2 +-
sw/source/core/doc/notxtfrm.cxx | 4 +-
sw/source/core/frmedt/fecopy.cxx | 2 +-
sw/source/core/layout/layact.cxx | 10 +-
sw/source/core/layout/paintfrm.cxx | 4 +-
sw/source/core/text/itratr.cxx | 2 +-
sw/source/core/text/porrst.cxx | 2 +-
sw/source/core/text/txtdrop.cxx | 2 +-
sw/source/core/txtnode/fntcache.cxx | 4 +-
sw/source/core/view/viewimp.cxx | 3 +-
sw/source/core/view/viewsh.cxx | 32 +-
sw/source/core/view/vnew.cxx | 10 +-
sw/source/filter/html/htmlform.cxx | 2 +-
sw/source/filter/html/htmlforw.cxx | 2 +-
sw/source/uibase/docvw/PageBreakWin.cxx | 2 +-
sw/source/uibase/docvw/edtwin.cxx | 14 +-
sw/source/uibase/docvw/edtwin2.cxx | 2 +-
sw/source/uibase/docvw/srcedtw.cxx | 6 +-
sw/source/uibase/inc/srcedtw.hxx | 1 -
sw/source/uibase/misc/swruler.cxx | 2 +-
sw/source/uibase/shells/txtcrsr.cxx | 4 +-
sw/source/uibase/uiview/pview.cxx | 14 +-
sw/source/uibase/uiview/view.cxx | 2 +-
sw/source/uibase/uiview/viewport.cxx | 4 +-
sw/source/uibase/uno/unotxvw.cxx | 4 +-
sw/source/uibase/utlui/shdwcrsr.cxx | 12 +-
toolkit/source/awt/vclxcontainer.cxx | 10 +-
toolkit/source/awt/vclxwindow.cxx | 23 +-
toolkit/source/awt/vclxwindows.cxx | 8 +-
toolkit/source/controls/unocontrol.cxx | 4 +-
toolkit/source/helper/btndlg.cxx | 2 +-
vcl/headless/svpgdi.cxx | 13 +
vcl/inc/brdwin.hxx | 1 +
vcl/inc/svdata.hxx | 4 +-
vcl/inc/window.h | 5 +-
vcl/inc/windowdev.hxx | 82 ++++++
vcl/qa/cppunit/complextext.cxx | 4 +-
vcl/qa/cppunit/outdev.cxx | 11 +-
vcl/source/app/help.cxx | 8 +-
vcl/source/app/salvtables.cxx | 25 +-
vcl/source/app/svapp.cxx | 18 +-
vcl/source/app/svdata.cxx | 1 +
vcl/source/app/svmain.cxx | 1 +
vcl/source/app/weldutils.cxx | 6 +-
vcl/source/control/PriorityHBox.cxx | 6 +-
vcl/source/control/PriorityMergedHBox.cxx | 4 +-
vcl/source/control/button.cxx | 12 +-
vcl/source/control/calendar.cxx | 2 +-
vcl/source/control/combobox.cxx | 2 +-
vcl/source/control/ctrl.cxx | 6 +-
vcl/source/control/edit.cxx | 32 +-
vcl/source/control/fixed.cxx | 38 +--
vcl/source/control/fixedhyper.cxx | 4 +-
vcl/source/control/imgctrl.cxx | 18 +-
vcl/source/control/imivctl1.cxx | 6 +-
vcl/source/control/imp_listbox.cxx | 26 +-
vcl/source/control/ivctrl.cxx | 6 +-
vcl/source/control/listbox.cxx | 6 +-
vcl/source/control/notebookbar.cxx | 4 +-
vcl/source/control/prgsbar.cxx | 4 +-
vcl/source/control/scrbar.cxx | 46 +--
vcl/source/control/spinbtn.cxx | 10 +-
vcl/source/control/spinfld.cxx | 24 +-
vcl/source/control/tabctrl.cxx | 6 +-
vcl/source/edit/texteng.cxx | 2 +-
vcl/source/edit/textview.cxx | 2 +-
vcl/source/edit/vclmedit.cxx | 2 +-
vcl/source/gdi/gdimtf.cxx | 6 +-
vcl/source/gdi/impanmvw.cxx | 4 +-
vcl/source/gdi/virdev.cxx | 2 +-
vcl/source/outdev/font.cxx | 8 +-
vcl/source/toolkit/group.cxx | 2 +-
vcl/source/treelist/headbar.cxx | 30 +-
vcl/source/treelist/svimpbox.cxx | 24 +-
vcl/source/treelist/svlbitm.cxx | 8 +-
vcl/source/treelist/svtabbx.cxx | 2 +-
vcl/source/treelist/treelistbox.cxx | 6 +-
vcl/source/uitest/uiobject.cxx | 4 +-
vcl/source/window/accessibility.cxx | 2 +-
vcl/source/window/brdwin.cxx | 26 +-
vcl/source/window/bubblewindow.cxx | 20 +-
vcl/source/window/clipping.cxx | 52 ++--
vcl/source/window/cursor.cxx | 4 +-
vcl/source/window/decoview.cxx | 8 +-
vcl/source/window/dndeventdispatcher.cxx | 2 +-
vcl/source/window/dockmgr.cxx | 2 +-
vcl/source/window/dockwin.cxx | 2 +-
vcl/source/window/event.cxx | 4 -
vcl/source/window/floatwin.cxx | 6 +-
vcl/source/window/globalization.cxx | 17 +-
vcl/source/window/layout.cxx | 2 +-
vcl/source/window/menu.cxx | 18 +-
vcl/source/window/menubarwindow.cxx | 8 +-
vcl/source/window/menufloatingwindow.cxx | 12 +-
vcl/source/window/menuwindow.cxx | 2 +-
vcl/source/window/mouse.cxx | 20 +-
vcl/source/window/paint.cxx | 183 ++++++------
vcl/source/window/settings.cxx | 30 +-
vcl/source/window/split.cxx | 12 +-
vcl/source/window/stacking.cxx | 2 +-
vcl/source/window/status.cxx | 10 +-
vcl/source/window/syswin.cxx | 2 +-
vcl/source/window/toolbox.cxx | 22 +-
vcl/source/window/toolbox2.cxx | 8 +-
vcl/source/window/window.cxx | 328 ++++++++++++---------
vcl/source/window/window2.cxx | 35 ++-
vcl/source/window/window3.cxx | 244 ++++++++++++++-
vcl/source/window/winproc.cxx | 12 +-
vcl/source/window/wrkwin.cxx | 2 +-
vcl/unx/generic/gdi/salgdi.cxx | 4 +-
vcl/unx/gtk3/gtkframe.cxx | 2 +-
vcl/workben/mtfdemo.cxx | 2 +-
vcl/workben/svptest.cxx | 2 +-
vcl/workben/vcldemo.cxx | 20 +-
270 files changed, 1766 insertions(+), 1271 deletions(-)

Upstream: cgit.freedesktop.org


  • Share