tabview.hxx included drawview.hxx for a std::unique_ptr<ScDrawView> member and an accessor that returns the raw pointer. Neither needs the complete type, and the destructor of ScTabView is already out of line. The include dragged svx/fmview.hxx, svx/view3d.hxx, svx/svdview.hxx and the rest of the svx view class chain into the 200 translation units that include the view shell headers. tabvwsh.hxx and tabview.hxx now include the small headers they used through that chain, and the files that call into the draw view include drawview.hxx themselves. clang -ftime-trace says around 2% of the module build time saved here. Signed-off-by: Michael Meeks <michael.meeks@collabora.com> Change-Id: I198b19e74f6ad56090b987880a063dc9ee677cda Reviewed-on: https://gerrit.collaboraoffice.com/c/online/+/12683 Tested-by: Jenkins CPCI <releng@collaboraoffice.com> Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> (cherry picked from commit a7fd69666ea5fb4d26dfad0d286f6c1f3bcd3144) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/211884 Tested-by: Jenkins Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>