Commit Graph

1220 Commits

Author SHA1 Message Date
Vincent Sanders ec7b4a9ff6 set correct version number and date 2013-04-19 21:24:25 +01:00
Michael Drake c8d76e68ca Hide caret after reflow (textarea may have moved), but let textarea keep focus. 2013-03-27 13:57:10 +00:00
Michael Drake 3529d39759 Don't show caret when scrolling a textarea that hasn't been given focus. 2013-03-27 13:46:57 +00:00
Michael Drake e2bcc5f5eb Tidy up pointer beyond scrollbars. 2013-03-27 11:43:10 +00:00
Michael Drake 9a73da6347 Reduce multi-line textarea a bit more. When redrawing only one line, don't redraw unchanged text at the start of the line. 2013-03-26 14:07:08 +00:00
Michael Drake 0bb9543293 Further reduce redraw region for multi-line textareas when editing. 2013-03-26 12:54:19 +00:00
Michael Drake 53962009da Trivial redraw optimisation for multiline textareas. Only redraw the line that was changed and below. 2013-03-25 12:37:18 +00:00
Michael Drake cc4411c0c7 Remove some spaces. 2013-03-25 12:03:53 +00:00
Michael Drake 70fbca3606 Reduce redraw area for selection set/change/clear. 2013-03-22 18:14:42 +00:00
Michael Drake b603cafbaa Move line start calc into reflow handler. 2013-03-22 18:14:42 +00:00
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 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 8cfa964cdf Start reflow on line before change in text, rather than always reflowing the entire textarea. 2013-03-20 12:41:06 +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 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 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
Michael Drake 490de208d0 Make autoscroll start at inside edge of border or scrollbar. 2013-03-06 21:31:20 +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
Michael Drake e8950dee22 Propagate native caret clip rect through core. 2013-03-05 22:54:51 +00:00
Michael Drake 541523f962 Less ambiguous flag documentation comment. 2013-03-04 15:12:58 +00:00
Michael Drake 69d653f4dc Fix history. 2013-03-04 15:07:58 +00:00
Michael Drake 02f2cbec3f Pedantic wrap. 2013-03-04 15:07:43 +00:00
John-Mark Bell cd3e073354 Fix logging 2013-02-27 03:11:30 +00:00
John-Mark Bell 97978e858b Use custom fetcher for inline CSS 2013-02-27 03:11:10 +00:00
John-Mark Bell 405fa12f8d Fix handling of inline stylesheets with @import 2013-02-26 09:14:32 +00:00
Michael Drake bba74b7a0b Handle readonly attribute for text inputs and textareas. 2013-02-23 17:44:20 +00:00
Michael Drake ffe3ce2615 Don't need initial caret pos now. 2013-02-22 22:26:03 +00:00
Michael Drake c034fb87ad No point in setting caret there. 2013-02-22 22:16:26 +00:00
John-Mark Bell 9303fc56dc Remove redundant code. 2013-02-22 20:51:56 +00:00
Michael Drake 48bd5e1f10 Always set caret. 2013-02-22 16:41:35 +00:00
Michael Drake 04ca082416 Shove allocation step size into #define. 2013-02-22 16:16:10 +00:00
Michael Drake 00eb142661 Increase allocation increment step size. 2013-02-22 16:12:48 +00:00
Michael Drake d48f3e3f49 Textarea tweaks for caret placement after selection removal. 2013-02-22 16:04:31 +00:00
Michael Drake 59fdbae1bc Fix setting of empty selections. 2013-02-22 15:23:36 +00:00
Michael Drake c2a718075a A load of refactoring of how content selection and input work.
Keypresses now go via content interface.
Contents don't shove the selection object into browser windows any more.
Contents report selection existence by sending message.
HTML content keeps track of where selections in it exist.
Contents report whether they have input focus via caret setting msg.
Caret can be hidden (can still input/paste) or removed.
Consolidate textarea selection handling.
Make textarea report its selection status changes to client.
Various textarea fixes.
Changed how we decide when to clear selections, and give focus.
2013-02-22 12:19:35 +00:00
John-Mark Bell 2b0cc398bb Fix handling of treeview launch actions. 2013-02-19 10:17:17 +00:00
Vincent Sanders 529ca251fc rename flags for browser_window routines to be shorter 2013-02-18 11:51:42 +00:00
Vincent Sanders b112dec78d change browser_window_create and refactor all callsites 2013-02-18 11:23:48 +00:00