From e7366bf41f68cfe07e9ea03fc4a398baecbae651 Mon Sep 17 00:00:00 2001 From: Daniel Silverstone Date: Sat, 4 Feb 2017 09:41:13 +0000 Subject: Initial conversion from MediaWiki, 20170204 --- layout.mdwn | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 layout.mdwn (limited to 'layout.mdwn') diff --git a/layout.mdwn b/layout.mdwn new file mode 100644 index 0000000..ba97b22 --- /dev/null +++ b/layout.mdwn @@ -0,0 +1,34 @@ +[[!meta title="Layout"]] +[[!meta author="Tlsa"]] +[[!meta date="2010-04-17T21:17:08Z"]] + + +[[!toc]] This page is for planning +the new layout engine [[scheduled for NetSurf 4.0|development_plan]]. + +### Overview + +At the moment NetSurf can only run layout on the whole box tree. This +happens every time the window width is changed, to let NetSurf reflow +the content. There are some optimisations where the layout code knows if +bits of the layout are fixed-width and won't be affected by a reflow. + +Currently we don't handle partial layouts of sections of the box tree. +For example, if a scroll:auto; is laid out to available width, and the +contained content exceeds a specified height, a scrollbar needs to be +inserted. This should cause the descendants to the scroll:auto; to be +laid out to available width - scrollbar width. + +Things that require the layout engine to be able to run on parts of an +already-laid-out page are: + +- New image fetched and it has width/height not specified in HTML or + CSS +- Overflow scrollbar insertion affects available width +- Frame scrollbar insertion affects available width +- Dynamic CSS pseudo classes +- JavaScript changing stuff or adding stuff + +Working out which bits of the page are affected by any given change may +not be easy. + -- cgit v1.2.3