Commit Graph

158 Commits

Author SHA1 Message Date
Michael Drake 87c5753d49 Fix missing doxygen parameter comment. 2014-09-18 16:00:30 +01:00
Achal-Aggarwal 763825e597 Fixes #2101, evaluation of text field and textarea line height. 2014-03-31 01:53:06 +05:30
Michael Drake b16cfd2d6e Fix #0002097, with thanks to Achal-Aggarwal for tracking this down. 2014-03-27 21:43:19 +00:00
Michael Drake 143f28572a Fix redraw when selections are deleted. 2014-02-17 12:15:08 +00:00
Michael Drake aa380ed47a More scaled rendering improvements. Partial redraws of scaled textareas can't work atm, since neither the textarea nor content is aware of scale. 2014-01-21 14:37:46 +00:00
Michael Drake 3f3b64bf22 Fix scaled rendering clip rect bottom calculation. 2014-01-21 11:13:36 +00:00
Vincent Sanders bd065d4a43 split browser gui operations up 2014-01-15 19:37:05 +00:00
Vincent Sanders 68eaec5cb4 complete move of remaining core gui functions 2014-01-15 12:28:55 +00:00
Vincent Sanders 0075eab194 move remaining gui operations to table 2014-01-14 23:31:54 +00:00
Michael Drake 838359194e Return message to client when textarea is modified. 2014-01-04 14:48:58 +00:00
Michael Drake 640bb77330 Dodge Coverity scan issue. 2013-10-23 11:16:34 +01:00
Michael Drake 0c4f32fb1d Make undo and redo share common implementation. 2013-10-01 18:29:22 +01:00
Michael Drake 5809bcefa6 Wipe undo buffer on textarea_set_text. 2013-10-01 14:03:02 +01:00
Michael Drake 3bdc61a131 Ensure cut can be undone. 2013-10-01 13:54:34 +01:00
Michael Drake 6a4601c3ce Implement textarea undo and redo. 2013-10-01 13:30:20 +01:00
Michael Drake 308a24e661 Start implementing undo/redo. For now it just records changes, the actual undo/redo handling is not yet done. 2013-09-30 21:38:41 +01:00
Michael Drake b96222d857 We return client data, not node. 2013-09-14 23:22:13 +01:00
Michael Drake 9c855df691 Remove dead assignment. 2013-09-05 12:01:13 +01:00
Michael Drake 2fce8cccbc Remove dead assignement. 2013-09-05 11:58:49 +01: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
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 e8950dee22 Propagate native caret clip rect through core. 2013-03-05 22:54:51 +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
Michael Drake 48bd5e1f10 Always set caret. 2013-02-22 16:41:35 +00:00