Commit Graph

894 Commits

Author SHA1 Message Date
Michael Drake
ed2206316c Positioned elements are taken out of normal flow, so don't let them affect min/max width calculations.
svn path=/trunk/netsurf/; revision=8502
2009-07-13 15:37:54 +00:00
Michael Drake
ebe0db1864 Delete html_redraw lighter/darker and use the colour tweakers in plot_style.
svn path=/trunk/netsurf/; revision=8452
2009-07-10 20:38:57 +00:00
Michael Drake
e0a4b50e87 Move colour blend routine from html_redraw to plot_style and make it a define.
svn path=/trunk/netsurf/; revision=8451
2009-07-10 19:53:30 +00:00
Michael Drake
96d8e9335c Remove html_redraw_aa because it is the same as html_redraw_blend. Fix html_redraw_blend to be 50/50 instead of 75/25.
svn path=/trunk/netsurf/; revision=8448
2009-07-10 19:09:33 +00:00
Vincent Sanders
680298e61c plotters line refactor
svn path=/trunk/netsurf/; revision=8446
2009-07-10 18:36:49 +00:00
John Mark Bell
5feb7018c5 Replace parent_url with a pointer to the parent content.
svn path=/trunk/netsurf/; revision=8428
2009-07-10 00:26:37 +00:00
Vincent Sanders
f9ecd56f62 ploter refactor of rectangle handling
svn path=/trunk/netsurf/; revision=8399
2009-07-08 22:04:40 +00:00
Michael Drake
21a2bfc53c Style guide indentation.
svn path=/trunk/netsurf/; revision=8345
2009-07-06 10:38:13 +00:00
Michael Drake
7372218033 Fix indentation to use tabs instead of spaces.
svn path=/trunk/netsurf/; revision=8344
2009-07-06 10:33:19 +00:00
Vincent Sanders
0ade453958 Refactor fill plotter to take a style
svn path=/trunk/netsurf/; revision=8332
2009-07-05 20:10:17 +00:00
John Mark Bell
2dbf92761f Fix stupid
svn path=/trunk/netsurf/; revision=8275
2009-07-02 23:05:10 +00:00
John Mark Bell
e6f70d9760 Make this more legible and squash leaks.
svn path=/trunk/netsurf/; revision=8273
2009-07-02 22:35:15 +00:00
Vincent Sanders
1165edf662 remove redundant clg call
svn path=/trunk/netsurf/; revision=8240
2009-07-01 13:53:06 +00:00
Michael Drake
f9b905be95 Fix assert when replaced element has display:table;.
svn path=/trunk/netsurf/; revision=7950
2009-06-24 15:43:24 +00:00
John Mark Bell
90c0fb6f3e Fix frame targets.
svn path=/trunk/netsurf/; revision=7729
2009-06-08 09:34:58 +00:00
Michael Drake
1a0f62f529 Don't need height of css positioned boxes when laying out boxes in normal flow.
svn path=/trunk/netsurf/; revision=7656
2009-05-30 12:22:22 +00:00
Michael Drake
798f421a88 When computing relative offset values for floats, use block formatting context for containing block, rather than parent.
svn path=/trunk/netsurf/; revision=7614
2009-05-28 18:06:49 +00:00
Michael Drake
8f9b03578f Remove redundant increment.
svn path=/trunk/netsurf/; revision=7596
2009-05-28 11:48:32 +00:00
Michael Drake
a7c3c7bf15 Remove redundant calculation.
svn path=/trunk/netsurf/; revision=7595
2009-05-28 11:46:14 +00:00
Michael Drake
b595970d82 Reorganise some conditions and only try to deal with min-height and max-height where it should be done.
svn path=/trunk/netsurf/; revision=7594
2009-05-28 11:14:32 +00:00
John Mark Bell
243c1ba03f Limit scope of manually-defined NDEBUG. Purge a bunch of redundant #undef NDEBUG.
svn path=/trunk/netsurf/; revision=7593
2009-05-28 10:39:53 +00:00
Michael Drake
ee4beae9e2 Remove unused code.
svn path=/trunk/netsurf/; revision=7591
2009-05-27 20:14:36 +00:00
Michael Drake
223818b84c Make layout_apply_minmax_height assert if it's called with a box that shouldn't exist.
svn path=/trunk/netsurf/; revision=7590
2009-05-27 19:43:03 +00:00
Michael Drake
50219b81e6 Pedantic wrap.
svn path=/trunk/netsurf/; revision=7589
2009-05-27 19:17:16 +00:00
Michael Drake
7bb2aa7cbb Remove a couple of superfluous conditions.
svn path=/trunk/netsurf/; revision=7588
2009-05-27 19:11:07 +00:00
Michael Drake
5b33c1e723 Remove dead assignment
svn path=/trunk/netsurf/; revision=7587
2009-05-27 18:43:14 +00:00
Michael Drake
65a888dd87 Handle percentage table heights. Spare height is still not distributed over cells.
svn path=/trunk/netsurf/; revision=7439
2009-05-08 11:43:38 +00:00
Michael Drake
c2ecbebd3d Fix viewport height handling not to obliterate calculation
of root element height from children's dimensions.
Improve handling of percentage heights on HTML and BODY.

svn path=/trunk/netsurf/; revision=7429
2009-05-07 16:22:38 +00:00
Michael Drake
129fb84ed5 Make layout_block_context() private.
svn path=/trunk/netsurf/; revision=7406
2009-05-06 14:20:46 +00:00
Michael Drake
a008d3486e Move special casing of form element dimensions out into separate helper function.
svn path=/trunk/netsurf/; revision=7403
2009-05-06 11:16:06 +00:00
Michael Drake
5a35e5cd97 Make form elements with specified sizes include paddings and borders in their sizes in some cases.
svn path=/trunk/netsurf/; revision=7386
2009-05-01 18:00:01 +00:00
John Mark Bell
c18945f771 Fix numbering of floated list items
svn path=/trunk/netsurf/; revision=7361
2009-04-29 10:44:20 +00:00
Michael Drake
68a72d17ab Allow box at point to search descendant space of boxes with no style.
svn path=/trunk/netsurf/; revision=7359
2009-04-28 21:24:11 +00:00
Michael Drake
a99a5bdd70 Move handling of TR height attribute from box construction to layout and add support for height property on TR.
svn path=/trunk/netsurf/; revision=7358
2009-04-28 20:13:10 +00:00
Michael Drake
044a953400 Make box_at_point() only return boxes if the point is physically contained within them, and not if the point is mearly in the descendant area. (Fixes sites like BBC F1 page where whole page became an iPlayer link.)
svn path=/trunk/netsurf/; revision=7335
2009-04-27 10:20:44 +00:00
John Mark Bell
f4afb83815 I deleted this, honest.
svn path=/trunk/netsurf/; revision=7144
2009-04-21 01:32:48 +00:00
John Mark Bell
56000c4736 If we calculate the height of the root box to be AUTO, set it to the viewport height before laying out the document (makes html, body { height: 100%; } behave correctly)
svn path=/trunk/netsurf/; revision=7127
2009-04-17 17:28:38 +00:00
John Mark Bell
daf7a52dd6 Hubbub is no longer optional.
Remove libxml2 parser binding.

svn path=/trunk/netsurf/; revision=7115
2009-04-17 00:54:27 +00:00
John Mark Bell
6a7b1a73a7 Fix compilation with GCC 2.95.
It astounds me how some of this lot compiled at all.

svn path=/trunk/netsurf/; revision=7104
2009-04-16 12:49:49 +00:00
Michael Drake
3a12ed0fac Update some comments.
svn path=/trunk/netsurf/; revision=7092
2009-04-15 13:22:28 +00:00
John Mark Bell
23cb08ad01 It probably helps to reflect API changes
svn path=/trunk/netsurf/; revision=7090
2009-04-15 12:26:25 +00:00
John Mark Bell
33619d7003 Handle hubbub errors.
Handle parser binding errors.

svn path=/trunk/netsurf/; revision=7087
2009-04-15 11:28:07 +00:00
Michael Drake
dbeeea572c Draw CSS overflow scrollbars differently. Front ends can override the colours used.
svn path=/trunk/netsurf/; revision=6943
2009-03-27 16:45:56 +00:00
John Mark Bell
b9e22451c2 Sync hubbub binding with spec.
svn path=/trunk/netsurf/; revision=6769
2009-03-10 23:13:08 +00:00
John Mark Bell
7840542e65 Squash warnings
svn path=/trunk/netsurf/; revision=6674
2009-03-02 19:47:27 +00:00
John Mark Bell
b98f105b24 Purge WITH_AUTH
svn path=/trunk/netsurf/; revision=6600
2009-02-22 15:13:10 +00:00
John Mark Bell
847b776285 Purge NETSURF_USE_SSL and WITH_SSL
svn path=/trunk/netsurf/; revision=6599
2009-02-22 15:07:50 +00:00
John Mark Bell
1ccc3182e3 Fix handling of buttons in successful control search
svn path=/trunk/netsurf/; revision=6576
2009-02-20 12:55:50 +00:00
John Mark Bell
1f859400d9 If we have no document charset on completion of parse, retrieve it from the binding.
Make the binding return Windows-1252 if it has no idea (as this is what the parser will have defaulted to).
Fix form_new to not require a document charset to be present -- it may not be known at this point.
Fixup form document charsets post-parse, so that form submission works correctly.

svn path=/trunk/netsurf/; revision=6575
2009-02-20 12:50:34 +00:00
John Mark Bell
cc1094f0ac Utilise hubbub's form association callback.
Please can we dispense with the libxml binding? It's causing much #ifdef mess.
Fix encoding of <input type=image> names -- previously were output as raw utf-8, rather than in the submission charset.
Actually bother to destroy forms in a document, and the controls associated with them. We still leak non form-associated controls, but that's too much effort to fix right now.

svn path=/trunk/netsurf/; revision=6573
2009-02-20 11:39:25 +00:00
John Mark Bell
ee986e1d0a Divorce PDF export and printing.
At some point, the RISC OS printing code should be ported to the core page-based output engine.

svn path=/trunk/netsurf/; revision=6544
2009-02-17 16:37:51 +00:00
John Mark Bell
72b8a67660 Ensure URLs are normalized prior to fetching.
Squash memory leaks.

svn path=/trunk/netsurf/; revision=6411
2009-02-10 18:35:56 +00:00
Michael Drake
f1c7c7f072 Remove unused line_height stuff for now.
svn path=/trunk/netsurf/; revision=6354
2009-02-02 13:54:48 +00:00
Michael Drake
b2182b8c50 Fix clear:both; when there's nothing to clear.
svn path=/trunk/netsurf/; revision=6352
2009-02-02 12:56:15 +00:00
Michael Drake
400ed91129 Hubbub allows FONT tags to span blocks and the way that
the box tree is generated, this makes the BOX_INLINE's
BOX_INLINE_END appears in a different BOX_BLOCK. That
seems wrong, but fix layout not to crash for now.

svn path=/trunk/netsurf/; revision=6325
2009-01-31 22:49:41 +00:00
Michael Drake
414f42faac Make inline boxes store the height of their line box and include in box tree dump.
svn path=/trunk/netsurf/; revision=6319
2009-01-31 13:26:28 +00:00
Michael Drake
887d7984cb Fix scale of inline borders.
svn path=/trunk/netsurf/; revision=6309
2009-01-31 00:41:03 +00:00
Adrian Lees
03a1aac36a Selection- and link-related functions now on menu; other menu changes as per t's plan
svn path=/trunk/netsurf/; revision=6296
2009-01-30 05:06:30 +00:00
Michael Drake
daf8c22d1b Only get top margin if box has style.
svn path=/trunk/netsurf/; revision=6295
2009-01-29 22:57:32 +00:00
Michael Drake
56b48410be Include top margin when finding sides for block formatting contexts.
svn path=/trunk/netsurf/; revision=6293
2009-01-29 21:23:48 +00:00
Michael Drake
619e5b9631 Once a float has been placed below current line,
ensure that subsequent floats are also placed below.
Make place_float_below() consider float height when
searching for available space.

svn path=/trunk/netsurf/; revision=6287
2009-01-27 13:21:50 +00:00
Michael Drake
aa787e9730 Fix specified table widths to include border. Tidy block formatting context and table position setup.
svn path=/trunk/netsurf/; revision=6281
2009-01-26 16:32:19 +00:00
Michael Drake
0a175d4020 Fix -ve margins.
svn path=/trunk/netsurf/; revision=6277
2009-01-26 09:11:54 +00:00
Michael Drake
0fefb7a605 More robust float avoidance for blocks set as block formatting contexts.
svn path=/trunk/netsurf/; revision=6275
2009-01-26 00:15:25 +00:00
Michael Drake
beff85fa73 Ignore clear:left; when the only floats are on the right and vice versa.
svn path=/trunk/netsurf/; revision=6176
2009-01-22 17:52:22 +00:00
Michael Drake
3594651a6b Handle clear before working out available width for tables and blocks that cause a new block formatting context.
svn path=/trunk/netsurf/; revision=6174
2009-01-22 15:39:06 +00:00
Michael Drake
4c40bbc096 Fix placement of tables in normal flow next to floats. This stops big blank gaps appearing e.g. at the top of wikipedia articles, on some google search results and on amazon product pages.
svn path=/trunk/netsurf/; revision=6162
2009-01-21 23:01:59 +00:00
Michael Drake
9134956efe Fix positioning of floats that come after floats with negative margins.
svn path=/trunk/netsurf/; revision=6156
2009-01-20 21:36:54 +00:00
Michael Drake
c5f72605b4 Block formatting context width is only reduced due to floats if width is auto.
svn path=/trunk/netsurf/; revision=6145
2009-01-19 10:17:44 +00:00
Michael Drake
20120a8acf Make blocks which establish a new block formatting context use have the correct width and position to avoid overlapping floats. Fixes the main problem on the amazon.co.uk front page.
svn path=/trunk/netsurf/; revision=6142
2009-01-18 23:41:48 +00:00
Michael Drake
e5a5bbec3f Move handling of background related print options to background specific functions.
svn path=/trunk/netsurf/; revision=6119
2009-01-17 19:39:38 +00:00
John Mark Bell
2d3b9e435b Charset fallbacks. If we don't support the charset declared in the HTTP header, fall back to autodetect. If we don't support the charset declared in a meta charset, fall back to Windows-1252.
svn path=/trunk/netsurf/; revision=5974
2009-01-06 22:06:14 +00:00
John Mark Bell
ec868fdcdc It's probably a good idea if we're consistent in which allocation routines we're using.
svn path=/trunk/netsurf/; revision=5972
2009-01-06 17:52:47 +00:00
John Mark Bell
7f099d6675 More lenient refresh delay parsing
svn path=/trunk/netsurf/; revision=5948
2008-12-30 15:46:06 +00:00
Michael Drake
d27a1c625f Only increase the root element's redraw box to cover margin, if the redraw box isn't already bigger due to protruding descendants.
svn path=/trunk/netsurf/; revision=5934
2008-12-27 17:29:17 +00:00
Michael Drake
5a3b076869 Fix crash bug.
svn path=/trunk/netsurf/; revision=5932
2008-12-27 17:09:35 +00:00
Michael Drake
e5e68a3feb Handle replaced inline borders and backgrounds like blocks.
svn path=/trunk/netsurf/; revision=5930
2008-12-27 15:03:54 +00:00
Michael Drake
8ecaccd8a4 Plot backgrounds on the root element over margin box, as per CSS 2.1 spec.
svn path=/trunk/netsurf/; revision=5927
2008-12-27 00:08:25 +00:00
Michael Drake
f26342940b Fix display of inline borders when inline has no background.
svn path=/trunk/netsurf/; revision=5924
2008-12-26 15:10:28 +00:00
Michael Drake
0ba4a444cc Fix some wrap to 80 chars and tabs for indentation.
svn path=/trunk/netsurf/; revision=5923
2008-12-26 11:34:23 +00:00
Michael Drake
a673ad21ee Don't apply text decoration if the box isn't text.
svn path=/trunk/netsurf/; revision=5921
2008-12-22 21:57:56 +00:00
François Revel
fe355fc087 C89
svn path=/trunk/netsurf/; revision=5919
2008-12-21 21:28:12 +00:00
Michael Drake
6a4d4489f5 Rewrite inline rendering. Fixes issues with borders,
background colour and background image display when
inlines have margins and paddings. Support for
background position on inlines. Fix BOX_INLINE
descendant calculation to include BOX_INLINE_END.

svn path=/trunk/netsurf/; revision=5916
2008-12-21 15:51:23 +00:00
François Revel
53fe38504f C89
svn path=/trunk/netsurf/; revision=5837
2008-11-29 22:53:58 +00:00
John Mark Bell
3a5d7d6b64 Process error page correctly.
TODO: Why don't *_process_data take a const pointer to the data?

svn path=/trunk/netsurf/; revision=5757
2008-11-20 14:47:36 +00:00
John Mark Bell
37278a0fa5 Don't care about chunk sizes.
svn path=/trunk/netsurf/; revision=5671
2008-11-09 19:18:18 +00:00
John Mark Bell
ee675539e0 Don't introduce an unnecessary error message
svn path=/trunk/netsurf/; revision=5670
2008-11-09 19:17:36 +00:00
John Mark Bell
8a16d5942b Port to new hubbub parser API
svn path=/trunk/netsurf/; revision=5669
2008-11-09 19:04:30 +00:00
Michael Drake
f33fd2c604 Take into account variations in text line height due to styled inlines when laying out inline containers.
svn path=/trunk/netsurf/; revision=5587
2008-10-16 20:50:48 +00:00
John Mark Bell
a55c1f6e41 Fixup hubbub binding
svn path=/trunk/netsurf/; revision=5576
2008-10-14 15:48:14 +00:00
John Mark Bell
76976d7db6 Fix warnings on OS X
svn path=/trunk/netsurf/; revision=5573
2008-10-14 14:54:49 +00:00
Rob Kendrick
34a1b46411 add bitmap.h include to silence some warnings on Fedora.
svn path=/trunk/netsurf/; revision=5571
2008-10-14 00:12:31 +00:00
Michael Drake
b3f32dece4 Implement percentage min/max-height.
svn path=/trunk/netsurf/; revision=5566
2008-10-13 19:22:16 +00:00
Michael Drake
38619e2d29 Finish 80 char widthing.
svn path=/trunk/netsurf/; revision=5560
2008-10-13 15:06:19 +00:00
Michael Drake
7293b6f4bb Tidy up where spaces were used for indentation.
svn path=/trunk/netsurf/; revision=5555
2008-10-13 12:30:23 +00:00
Michael Drake
a5ac56655c Fix float percentage heights to match other browsers: for floated elements the containing block is the nearest ancestor box at block level, rather than the block formatting context block that the float is in.
svn path=/trunk/netsurf/; revision=5553
2008-10-13 10:50:46 +00:00
Michael Drake
79978eafcd Set float_container before float layout. Fixes percentage height on floated elements.
svn path=/trunk/netsurf/; revision=5552
2008-10-12 21:45:38 +00:00
Michael Drake
1a237535f7 Better commenting of percentage height stuff.
svn path=/trunk/netsurf/; revision=5551
2008-10-12 21:35:04 +00:00
Michael Drake
b7a1b3999e Implement percentage heights for block level elements in normal flow, floats and positioned boxes. Percentage min/max-height not yet handled.
svn path=/trunk/netsurf/; revision=5550
2008-10-12 21:22:28 +00:00
Michael Drake
c1db0e90cc Use style guide switch formatting all over.
svn path=/trunk/netsurf/; revision=5549
2008-10-12 15:34:43 +00:00