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
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