Commit Graph

681 Commits

Author SHA1 Message Date
Michael Drake
243e0abbcd Establish a new block formatting context for blocks with non-visisble overflow style. (9.4.1)
svn path=/trunk/netsurf/; revision=4270
2008-06-06 14:54:19 +00:00
John Mark Bell
287e6b2395 Recurse into <area> and <a>, too.
svn path=/trunk/netsurf/; revision=4220
2008-05-28 20:05:30 +00:00
John Mark Bell
e004e0e745 Squash more warnings.
svn path=/trunk/netsurf/; revision=4210
2008-05-26 10:46:45 +00:00
James Bursa
70da04d69e Simplify code using xmlDocGetRootElement().
svn path=/trunk/netsurf/; revision=4201
2008-05-25 22:31:42 +00:00
John Mark Bell
23fb72ea6b The core code has always assumed a locale of "C".
Do not change the locale globally, else things will break in weird and 
wonderful ways.

Introduce utils/locale.[ch], which provide locale-specific wrappers for various 
functions (currently just the <ctype.h> ones).

Fix up the few places I can see that actually require that the underlying 
locale is paid attention to.

Some notes:

  1) The GTK frontend code has not been touched. It is possible that reading of 
     numeric values (e.g. from the preferences dialogue) may break with this 
     change, particularly in locales that use something other than '.' as their
     decimal separator.
  2) The search code is left unchanged (i.e. assuming a locale of "C"). 
     This may break case insensitive matching of non-ASCII characters. 
     I doubt that ever actually worked, anyway. In future, it should use
     Unicode case conversion to achieve the same effect.
  3) The text input handling in the core makes use of isspace() to detect
     word boundaries. This is fine for western languages (even in the C locale,
     which it's currently assuming). It will, however, break for CJK et. al. 
     (this has always been the case, rather than being a new issue)
  4) text-transform uses locale-specific variants of to{lower,upper}. In future
     this should probably be performing Unicode case conversion. This is the
     only part of the core code that makes use of locale information.

In future, if you require locale-specific behaviour, do the following:

  setlocale(LC_<whatever>, "");
  <your operation(s) here>
  setlocale(LC_<whatever>, "C");

  The first setlocale will change the current locale to the native environment.
  The second setlocale will reset the current locale to "C".
  Any value other than "" or "C" is probably a bug, unless there's a really
  good reason for it.

In the long term, it is expected that all locale-dependent code will reside in 
platform frontends -- the core being wholly locale agnostic (though assuming 
"C" for things like decimal separators).


svn path=/trunk/netsurf/; revision=4153
2008-05-13 14:37:44 +00:00
Michael Drake
7e28ca26d1 Accomodate text area scrollbars in fixed widths. Fix radio button / checkbox issue.
svn path=/trunk/netsurf/; revision=4108
2008-04-25 14:57:36 +00:00
Michael Drake
4110152a62 Change handling of form element widths / heights.
svn path=/trunk/netsurf/; revision=4107
2008-04-25 14:15:18 +00:00
Michael Drake
fc4e39f5b8 Make floats that follow a cleared float heed the clear. Fixes position of search form on BBC homepage.
svn path=/trunk/netsurf/; revision=4104
2008-04-23 18:49:11 +00:00
Michael Drake
e6e0fa0b32 Maybe fix table layout problem caused by r4100.
svn path=/trunk/netsurf/; revision=4103
2008-04-23 10:45:46 +00:00
Michael Drake
c4146fb8ff Fix absolute positioning when there's a float between the box and its containing block.
svn path=/trunk/netsurf/; revision=4101
2008-04-21 22:02:33 +00:00
Michael Drake
05e8696fc4 Improve handling of absolutely positioned table cells. Corrects positioning of "Weather" box contents on BBC homepage.
svn path=/trunk/netsurf/; revision=4100
2008-04-20 15:49:25 +00:00
John Mark Bell
dc85ddb0a8 Launch redirects to unsupported URLs in other applications.
svn path=/trunk/netsurf/; revision=4098
2008-04-19 11:07:42 +00:00
Michael Drake
8b2a23081f Various text selection improvements:
+ Fix redraw bug where parts of old selections would get left behind
+ Enable selection of list marker boxes (bullet points and numbers)
+ Improve formatting of copied-to-clipboard or saved text selections
+ Select click anywhere outside current selection now clears current selection

svn path=/trunk/netsurf/; revision=4079
2008-04-07 09:00:21 +00:00
John Tytgat
0d39c69763 - riscos/gui.c(path_to_url): escape the characters which need to be escaped when converting the host path to file: URL.
- utils/{url.c,url.h}(url_escape):
  * added parameter 'toskip' to specify number of input characters which need to be skipped in the escape process. This avoids extra malloc buffer juggling.
  * added parameter 'escexceptions' to specify the characters which need to be excluded from the escape process.

Solves SF tracker ID 1910169.
Note that when discname in path contains '/' characters (case: "file:///Sunfish#192.168.0.50::/home/joty.$/jo.html") or there is no discname specified at all (case "file:///HostFS:$/jo.htm"), you 
need an UnixLib fix as in http://www.riscos.info/websvn/listing.php?repname=gccsdk&path=%2Ftrunk%2Fgcc4%2F&rev=3395&sc=1

svn path=/trunk/netsurf/; revision=4069
2008-04-02 00:43:51 +00:00
Michael Drake
83a83757ab Only record that the HTML alignment was set by a table element if it is actually set.
svn path=/trunk/netsurf/; revision=4058
2008-03-29 19:51:00 +00:00
James Shaw
9402e110e9 Implement sprite support for GTK using librosprite
svn path=/trunk/netsurf/; revision=4051
2008-03-29 13:30:04 +00:00
Michael Drake
19c6a63174 CSS min/max-height overrides height.
svn path=/trunk/netsurf/; revision=4008
2008-03-21 01:04:09 +00:00
John Mark Bell
c1efc9c275 Unsightly hack around flickering to white in nsgtk. This needs to be sorted out properly as a matter of urgency.
svn path=/trunk/netsurf/; revision=4005
2008-03-21 00:14:01 +00:00
Michael Drake
7bc2306612 CSS min-height and max-height properties override fixed heights too.
svn path=/trunk/netsurf/; revision=4003
2008-03-20 23:07:55 +00:00
John Mark Bell
969acc3d0c Re-express table_find_cell algorithm to avoid relying upon side-effects.
svn path=/trunk/netsurf/; revision=3986
2008-03-19 17:47:26 +00:00
John Mark Bell
488520f2b2 Lose spurious *
svn path=/trunk/netsurf/; revision=3985
2008-03-19 17:41:38 +00:00
John Mark Bell
bdf3c5e56b Squash "implicit declaration of function 'gui_multitask'" warnings.
svn path=/trunk/netsurf/; revision=3980
2008-03-19 16:46:26 +00:00
John Mark Bell
885ce428a9 Ensure that scrollbar foreground is actually visible (black on black, for example, isn't very usable)
svn path=/trunk/netsurf/; revision=3950
2008-03-14 10:08:58 +00:00
Rob Kendrick
4ec38922ac Change meaning of c->redraw_time to be the earliest time to reflow during page asset fetch. Have the time selected vary depending on how long the last reflow took.
svn path=/trunk/netsurf/; revision=3925
2008-03-11 00:14:39 +00:00
John Mark Bell
d4e57583a0 Insert implied boxes rather than entirely removing empty table/row group nodes from the box tree.
svn path=/trunk/netsurf/; revision=3920
2008-03-10 14:24:41 +00:00
John Mark Bell
4da171f53c Fix last pointer manipulation for table and row_group boxes.
svn path=/trunk/netsurf/; revision=3919
2008-03-10 14:23:04 +00:00
John Mark Bell
9468e4abbe Take account of any table height specified through CSS or HTML.
svn path=/trunk/netsurf/; revision=3918
2008-03-10 14:17:35 +00:00
Michael Drake
abd453166f Apply min/max-height to absolutely positioned elements.
svn path=/trunk/netsurf/; revision=3916
2008-03-10 12:36:35 +00:00
Michael Drake
2c7ce0143f Adjust y values after seting a min/max-height.
svn path=/trunk/netsurf/; revision=3910
2008-03-09 23:41:08 +00:00
Michael Drake
052f8b47ff Initial stab at min/max-height support.
svn path=/trunk/netsurf/; revision=3909
2008-03-09 19:39:17 +00:00
Michael Drake
920be77804 When floats have clear right or left set, as well as being put below floats on that side, they should still follow normal behaviour with respect to floats on the other side.
svn path=/trunk/netsurf/; revision=3904
2008-03-09 14:10:05 +00:00
Michael Drake
1dc8770cbb Fix clear CSS property support when applied on floats.
svn path=/trunk/netsurf/; revision=3902
2008-03-09 01:34:49 +00:00
Michael Drake
201dabcb9b Round percentage width to nearest pixel with integers.
svn path=/trunk/netsurf/; revision=3901
2008-03-08 20:30:40 +00:00
Michael Drake
9c0eda1d2c Fix float wrapping when available space equals space that would be used by float.
svn path=/trunk/netsurf/; revision=3898
2008-03-07 21:39:06 +00:00
Michael Drake
16489d1b12 No space between rows of floats.
svn path=/trunk/netsurf/; revision=3895
2008-03-07 18:36:04 +00:00
Michael Drake
ceb5f5ff7f Round percentage widths to nearest pixel instead of down.
svn path=/trunk/netsurf/; revision=3891
2008-03-06 19:41:49 +00:00
Michael Drake
f7be887580 Centered tables are a special case.
svn path=/trunk/netsurf/; revision=3880
2008-03-05 08:09:06 +00:00
Michael Drake
5859cae5d4 Squash warning.
svn path=/trunk/netsurf/; revision=3875
2008-03-01 21:01:04 +00:00
Michael Drake
bae61d9224 Periodically reflow the page while fetching a page's objects. Make buffer all rendering default.
svn path=/trunk/netsurf/; revision=3874
2008-02-29 23:03:26 +00:00
Michael Drake
f752aca0d4 Fix align attributes on TABLE etc being overridden in the table's cells by the default alignment of cells with no align attribute.
svn path=/trunk/netsurf/; revision=3873
2008-02-28 20:36:09 +00:00
John Mark Bell
89793c2171 Make content_reset actually do what it's meant to (i.e. reset the appropriate members)
Fix up CONTENT_MSG_REFRESH scheduled events to gracefully the refresh URL disappearing from under them.

svn path=/trunk/netsurf/; revision=3870
2008-02-27 18:38:41 +00:00
Michael Drake
748937547a Don't meddle with blockquote's margins.
svn path=/trunk/netsurf/; revision=3869
2008-02-26 22:31:38 +00:00
John Mark Bell
1cf46a6792 SignednessWarnings.squash()
Aside from a number of instances of const being cast away (mostly relating to the urldb, which is correct to only export const data) this now builds warning-free with GCC 4 on x86, which is nice.

svn path=/trunk/netsurf/; revision=3868
2008-02-25 17:58:00 +00:00
Michael Drake
a4e1ffda1a Improve handling of HTML attributes / markup:
* Only apply presentational HTML attributes if no more
   important CSS has been set for the property. (NetSurf used
   to be a bit hit-and-miss when presentational markup and
   CSS were mixed.)
 * Change table cellpadding and border handling to happen as
   soon the boxes styles are available, rather than after the
   whole table has been constructed. Also fix default table
   border colour.
 * Improve handling of CENTER tag and ALIGN attribute. These
   could not be correctly supported in the default CSS file,
   so block level element alignment is now done during box
   construction. (Fixes #1891379, #1824492, #1723853)
Form improvements:
 * Small MAXLENGTH values on text inputs now reduce element
   width. (Fixes #1894854)
 * Prevent select option text from wrapping.

svn path=/trunk/netsurf/; revision=3866
2008-02-25 16:37:48 +00:00
John Mark Bell
1fc91faff1 Also flag box as invisible so it'll have no effect on layout
svn path=/trunk/netsurf/; revision=3864
2008-02-25 08:56:11 +00:00
John Mark Bell
73c02364a8 Ignore spurious top-level framesets correctly (previously declared memory exhaustion, which is obviously wrong)
svn path=/trunk/netsurf/; revision=3863
2008-02-25 08:53:04 +00:00
Michael Drake
369344518a For form gadgets, specified percentage width is inclusive of margin, border and padding space.
svn path=/trunk/netsurf/; revision=3859
2008-02-17 18:22:06 +00:00
Michael Drake
7d748ae2ff Select element width is width of longest option text.
svn path=/trunk/netsurf/; revision=3855
2008-02-11 17:53:00 +00:00
John Mark Bell
2c2ac87e37 Prevent tabbing into textfields whose styling is display: none;
svn path=/trunk/netsurf/; revision=3849
2008-02-07 00:50:37 +00:00
Michael Drake
7177f59309 Improve float positioning.
svn path=/trunk/netsurf/; revision=3833
2008-02-03 18:44:24 +00:00