Commit Graph

8831 Commits

Author SHA1 Message Date
Michael Drake ad53da023d Optimise redraw of single line textarea. When single line textarea is unscrolled, only the changed area is redrawn after edits. 2013-03-21 18:47:38 +00:00
Michael Drake 948f2dbed6 Split reflow into two functions for single or multi line textareas. 2013-03-21 14:15:36 +00:00
Michael Drake d0966c9d3f Fix leaked utf16 string. 2013-03-20 22:22:36 +00:00
Michael Drake 91d05fc0f1 Ensure that actual_x is set when string fits inside available_width. 2013-03-20 22:07:22 +00:00
Michael Drake 918aa9d266 Fix error. 2013-03-20 20:59:00 +00:00
Michael Drake 138d2529ef More meddling. 2013-03-20 20:55:03 +00:00
Michael Drake 5d7b1f40a3 Another attempt. 2013-03-20 20:06:24 +00:00
Michael Drake 8e360ff040 Robust detection of scroll changes. 2013-03-20 19:52:10 +00:00
Michael Drake c568a9626b Avoid double redraw when edit causes scroll. 2013-03-20 19:24:53 +00:00
Michael Drake 50efd110b8 Use cached line length to avoid some nsfont_width calls for selection rendering in redraw. 2013-03-20 18:09:52 +00:00
Michael Drake 3403891f63 Avoid redraw of scrollbars when they've not changed. 2013-03-20 17:53:38 +00:00
Michael Drake 71392160d0 Cache line widths. Fixes scrollbar issue introduced with partial reflow enablement. Will also be used for future redraw optimisations. 2013-03-20 17:32:18 +00:00
Michael Drake ea4b7eb3a8 Try fixing Amiga nsfont_split. (Untested!) 2013-03-20 13:14:17 +00:00
Michael Drake 8cfa964cdf Start reflow on line before change in text, rather than always reflowing the entire textarea. 2013-03-20 12:41:06 +00:00
Chris Young 5f7ed448d4 This needs to be set as CustomScreen to ensure it isn't classed as a "visitor" window, for reasons not fully understood. 2013-03-20 08:28:08 +00:00
Chris Young 22c7c1259b We are opening on a public screen, not a custom screen (even our own screen is a public screen) 2013-03-20 08:22:03 +00:00
John-Mark Bell 09086758e7 Fix 3608298: only apply link hack if JS is disabled. 2013-03-19 21:38:25 +00:00
Michael Drake 0bcbdba424 Comment fixes. 2013-03-19 17:29:55 +00:00
Michael Drake b1082c09e7 Fix warnings. 2013-03-19 16:28:05 +00:00
Michael Drake 2ad0d23915 Start reducing unnecessary redraws: when only start OR end of selection has changed, only redraw the lines affected. (Reduces redraw of vertical regions only. Still redraw full width for changed lines.) 2013-03-19 16:22:24 +00:00
Michael Drake f4ce62ebfe In box textarea binding only redraw the area that was requested, not the whole textarea. 2013-03-19 12:44:03 +00:00
Michael Drake dd704c2c43 Fix can paste/copy tests. 2013-03-18 23:06:06 +00:00
Michael Drake 74a82e2ab0 Fix menu shading of copy/cut/paste options when more than one of them should be made available. 2013-03-18 22:48:15 +00:00
Michael Drake 773cc5b562 Stop looking on first modified sheet found. 2013-03-18 15:01:56 +00:00
Michael Drake 07bdb324c1 Remove extra logging. 2013-03-18 14:57:29 +00:00
Michael Drake 5930e4bcc4 Fix bug where html conversion began before STYLE element fetch had been launched. 2013-03-18 14:48:00 +00:00
Michael Drake bf69cfa74b Add some extra logging. Some pedantic wrap changes. 2013-03-18 12:35:00 +00:00
Michael Drake 8d0c1f9207 Loads of changes including fixes, new functionality, and optimisation.
+ Refactor internals to be byte, rather than character based.
    + Don't need to hammer utf8_* functions everywhere
    + Optimises:
        + Redraw (lots)
        + Editing (insertion, replacement, removal)
        + Caret placement
        + Selection
+ Early avoid of zero length autoscroll during selection drag.
+ Optimised redraw to avoid nsfont_width when:
    + There's no selection at all.
    + We're on last part of line, and it's unselected.
+ Implemented WORD_LEFT and WORD_RIGHT keys (shift + cursor left/right)
+ Fixed UP and DOWN (cursor up/down) keys to handle non-monospace fonts.
  (Now based on 'x' offset on line, rather than character offset on line.)
+ Fixed PAGE_UP and PAGE_DOWN to scroll without moving the caret.
+ Fixed redraw bug in text selection edge case.
+ Changed textarea_replace_text and textarea_insert_text to return
  a byte delta for caret position changes.
+ Coordinate to text offset function handles global and viewport coords.
+ Many small improvements and tidying.
2013-03-17 22:06:48 +00:00
Michael Drake c3f21572ed Add function to get the byte length of n characters in a utf8 string. 2013-03-17 22:01:42 +00:00
Michael Drake c205378a8d Merge branch 'master' of git://git.netsurf-browser.org/netsurf 2013-03-16 10:53:20 +00:00
John-Mark Bell 3801886aec Debounce style updates 2013-03-16 10:50:17 +00:00
John-Mark Bell 4136a4d64e Move public API to end 2013-03-16 10:33:28 +00:00
John-Mark Bell 6e5e5761fc Ensure a reference is taken on style nodes. 2013-03-16 01:00:06 +00:00
Michael Drake 2af4b5be01 Make textarea_get_caret private. 2013-03-13 11:23:07 +00:00
Vincent Sanders 95e726c7cc split sources lists out to their subdirectories as first step towards using core buildsystem 2013-03-11 17:53:52 +00:00
Michael Drake 41e4928e25 Fix pointer shape and status bar messages for textareas and their scrollbars. 2013-03-11 12:57:33 +00:00
Vincent Sanders f3b515540e move javascript makefile 2013-03-11 11:09:47 +00:00
Ole Loots fffaa149bc Correctly set initial size of the search area. 2013-03-11 01:16:37 +01:00
Ole Loots 939f078dd8 Fixed / Improved commandline URL handling.
- It's now possible to drag local files onto netsurf executable.
- Added better resource file logging (THING passes strange CWD)
2013-03-11 00:53:22 +01:00
Ole Loots 0ec72e3415 Removed toolbar 2013-03-11 00:52:54 +01:00
François Revol f3c0b643b6 beos: Set the filename in the download file panel 2013-03-09 21:03:16 +01:00
Adrien Destugues - PulkoMandy 29f062e963 beos: Fix some cpp warnings 2013-03-09 20:51:22 +01:00
François Revol e31007f6a7 C89 2013-03-09 20:44:25 +01:00
Chris Young 20e4bdadaf Support old picture.datatype 2013-03-09 15:29:30 +00:00
Michael Drake 490de208d0 Make autoscroll start at inside edge of border or scrollbar. 2013-03-06 21:31:20 +00:00
Michael Drake c1628435f2 Fix min line width calc when an inline isn't to be wrapped in a block that allows wrap. 2013-03-06 18:39:38 +00:00
Michael Drake e3cb0ba450 Pull scrollbar mouse handling out into helper function. 2013-03-06 15:41:51 +00:00
Michael Drake 5b7643634f Textarea sends caret hide msg if caret completely outside visible area. 2013-03-06 14:28:34 +00:00
Michael Drake 951a584705 Don't show caret if there's a selection. 2013-03-06 13:10:37 +00:00
Michael Drake 037beb44fb Pass caret clip rect out to front ends. (Nothing actually using them yet.) 2013-03-05 22:54:51 +00:00