Leonardo Lang
dc10fd8c44
Fix out-of-bounds access on TextView
...
Frequent updates to `TextContent` while the screen is being refreshed can
trigger an out-of-bounds access: an update with a smaller string being
performed between calls to `compute_rows()` and `draw()` on TextView will
cause an out-of-bounds access when slicing the string at `Segment::resolve`.
This change fixes the issue by caching the content value when performing
size calculations and using this cached content when drawing the view.
Some additional changes were also made to reuse `TextContent` invalidation
code on `TextView` and wrap content data with `RefCell<Arc<..>>` to enable
sharing the inner string between `content_value` and `content_cache`.
2019-08-01 20:29:50 -04:00
mukund
bfbdf5c26b
Fix a typo in text-view.rs (content
-> view
)
2019-03-04 12:10:35 -08:00
Alexandre Bury
e096dc9740
Run cargo fix --edition-idioms
2019-02-28 15:55:10 -08:00
Alexandre Bury
e51be07e5d
Update to Rust 2018
...
Run `cargo fix --edition` and update Cargo.toml
2019-02-28 15:54:12 -08:00
Alexandre Bury
acc1405c2a
Fix size cache in ScrollView
2018-08-20 13:30:42 -07:00
Alexandre Bury
e3887847fd
Remove ScrollBase from TextView
...
Wrap the `TextView` in a `ScrollView` to achieve scrolling.
2018-06-22 14:57:55 -07:00
Alexandre Bury
2935f0f569
Add scroll strategy to ScrollView
2018-06-20 11:56:22 -07:00
Alexandre Bury
9bd1eb320d
Add size cache to ScrollView
2018-06-20 11:48:09 -07:00
Alexandre Bury
5e1956b737
Merge branch 'master' into scroll
2018-06-15 23:21:10 -07:00
Alexandre Bury
8acc08f340
Rustfmt
2018-06-10 23:29:19 -07:00
Alexandre Bury
2088d5de2a
Cargo fmt
2018-05-17 17:37:39 -07:00
Alexandre Bury
f0b3287d73
Merge branch 'master' into scroll
2018-04-16 22:42:42 -07:00
Alexandre Bury
8641098781
Split Printer::sub_printer into sub-methods
2018-04-04 17:49:11 -07:00
Alexandre Bury
126530b9a9
Cursive::new now takes the backend as argument
2018-04-01 16:39:03 -07:00
Alexandre Bury
1ad515e5f0
rustfmt
2018-03-22 11:04:58 -07:00
Alexandre Bury
7772cd146d
Add AsSpannedStr trait
...
For nicer calls to resolve
2018-02-16 16:32:54 -08:00
Alexandre Bury
25e65a87e8
Remove attribute type from spans::LinesIterator
2018-02-16 16:05:15 -08:00
Alexandre Bury
5dfdeab6ae
Fix clippy warnings
2018-01-22 14:47:56 -08:00
Alexandre Bury
3674c118cb
Rustfmt
2018-01-22 11:55:56 -08:00
Alexandre Bury
98aff39904
Move View::as_any
to separate trait AnyView
2018-01-22 11:50:25 -08:00
Alexandre Bury
1551fbb543
Add View::as_any and View::as_any_mut
2018-01-22 09:20:45 -08:00
Alexandre Bury
51eb6bf34c
Have TextView::content take Into<StyledString>
2018-01-15 14:13:30 -08:00
Alexandre Bury
39405ba1ec
Refactor spans and markup
...
We now use mostly indexed spans into a source string.
Indexed Spans can still be resolved to a string slice when needed.
2018-01-15 13:53:27 -08:00
Alexandre Bury
4879d8cc71
Fix ending newline problem
2018-01-11 00:16:13 +01:00
Alexandre Bury
890b3f13e1
TextView: print styled spans of text
2018-01-10 23:58:29 +01:00
Alexandre Bury
f8588e74c1
Rustfmt
2018-01-09 15:17:49 +01:00
Alexandre Bury
df97279442
TextView: add manual scroll methods
2018-01-08 19:02:35 +01:00
Alexandre Bury
7ac003c4de
Re-organize utils module
2018-01-08 12:07:07 +01:00
Alexandre Bury
aa9db30a51
Add TextView::set_effect
2018-01-05 14:20:09 +01:00
Alexandre Bury
895557e91d
Fix TextView deadlock
2018-01-05 14:20:08 +01:00
Alexandre Bury
08a935d561
Don't run test examples when we call Cursive::new
...
It fails with some backends.
2017-12-31 20:29:05 +01:00
Alexandre Bury
8a05bd5421
TextView: improve documentation
2017-12-31 19:49:13 +01:00
Alexandre Bury
65ea8eeec8
No need to clone the Arc
2017-12-31 14:14:19 +01:00
Alexandre Bury
e4cd68a4eb
Rustfmt
2017-12-30 23:03:42 +01:00
Alexandre Bury
799ec812e4
Add TextContent and TextContentRef
...
To manage the model separately from the view.
2017-12-30 23:00:48 +01:00
Alexandre Bury
bbee77f1b7
Add ViewWrapper::into_inner
...
And add some derive(Debug)
2017-12-11 17:31:55 -08:00
Alexandre Bury
420454cc0f
Better mouse scroll drag
...
Now saturates when to the top or left.
2017-10-14 21:50:08 -07:00
Alexandre Bury
f90621811c
More rustfmt
2017-10-14 21:18:50 -07:00
Alexandre Bury
a5952d0741
Fix some mouse/scroll issues with SelectView and TextView
2017-10-13 17:53:39 -07:00
Alexandre Bury
93982517ae
Fix clippy warnings
2017-10-13 11:24:17 -07:00
Alexandre Bury
2fed1f3ff4
Add mouse support for regular SelectView
2017-10-12 14:32:48 -07:00
Alexandre Bury
5931ab17c8
Add mouse scroll support to TextView
2017-10-11 18:06:58 -07:00
Alexandre Bury
05bac7a192
More safe subtractions all around.
2017-08-14 16:32:39 -07:00
Alexandre Bury
cb3adc5baf
feat: find_id
can now find views declared with with_id_mut
2017-02-26 15:52:42 -08:00
Alexandre Bury
d7eaa5a086
Rename View::get_min_size
-> required_size
2017-01-23 22:53:03 -08:00
Alexandre Bury
c970712c3b
Add TextView::append_content
...
Also don't strip the newline anymore when setting content.
Instead, just ignore trailing newline when computing rows.
2017-01-23 20:22:43 -08:00
Alexandre Bury
0849ae6efa
Add comments
2017-01-21 15:06:31 -08:00
Alexandre Bury
3ecae579e8
Adjust the scroll after setting the scroll strategy
2017-01-21 11:46:56 -08:00
Alexandre Bury
924c74afbe
Add ScrollStrategy to TextView
2017-01-21 11:44:40 -08:00
Alexandre Bury
3b3f403f7a
Apply rustfmt
2016-10-02 15:22:29 -07:00