widgets(textinput): properly reset state
Fix resetting of state when calling clearAndFree, clearRetainingCapacity, or toOwnedSlice. Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
This commit is contained in:
parent
e37790904f
commit
6a31b71e33
1 changed files with 10 additions and 5 deletions
|
@ -137,20 +137,25 @@ pub fn draw(self: *TextInput, win: Window) void {
|
||||||
|
|
||||||
pub fn clearAndFree(self: *TextInput) void {
|
pub fn clearAndFree(self: *TextInput) void {
|
||||||
self.buf.clearAndFree();
|
self.buf.clearAndFree();
|
||||||
self.cursor_idx = 0;
|
self.reset();
|
||||||
self.grapheme_count = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn clearRetainingCapacity(self: *TextInput) void {
|
pub fn clearRetainingCapacity(self: *TextInput) void {
|
||||||
self.buf.clearRetainingCapacity();
|
self.buf.clearRetainingCapacity();
|
||||||
self.cursor_idx = 0;
|
self.reset();
|
||||||
self.grapheme_count = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn toOwnedSlice(self: *TextInput) ![]const u8 {
|
pub fn toOwnedSlice(self: *TextInput) ![]const u8 {
|
||||||
|
defer self.reset();
|
||||||
|
return self.buf.toOwnedSlice();
|
||||||
|
}
|
||||||
|
|
||||||
|
fn reset(self: *TextInput) void {
|
||||||
self.cursor_idx = 0;
|
self.cursor_idx = 0;
|
||||||
self.grapheme_count = 0;
|
self.grapheme_count = 0;
|
||||||
return self.buf.toOwnedSlice();
|
self.draw_offset = 0;
|
||||||
|
self.prev_cursor_col = 0;
|
||||||
|
self.prev_cursor_idx = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// returns the number of bytes before the cursor
|
// returns the number of bytes before the cursor
|
||||||
|
|
Loading…
Reference in a new issue