databases filter text overflow scroll

pull/27/head
Takayuki Maeda 3 years ago
parent 98ca815c68
commit b2a34b6226

@ -61,6 +61,14 @@ impl DatabasesComponent {
self.input.iter().collect()
}
pub fn displey_input_str(&self, limit: usize) -> String {
let mut input = self.input.clone();
while input.iter().collect::<String>().width() > limit {
input.remove(0);
}
input.iter().collect()
}
pub fn update(&mut self, list: &[Database]) -> Result<()> {
self.tree = DatabaseTree::new(list, &BTreeSet::new())?;
self.filterd_tree = None;
@ -158,7 +166,7 @@ impl DatabasesComponent {
if self.input.is_empty() && matches!(self.focus_block, FocusBlock::Tree) {
"Filter tables".to_string()
} else {
self.input_str()
self.displey_input_str(area.width.saturating_sub(3) as usize)
},
w = area.width as usize
),
@ -187,7 +195,11 @@ impl DatabasesComponent {
);
self.scroll.draw(f, area);
if let FocusBlock::Filter = self.focus_block {
f.set_cursor(area.x + self.input_cursor_position + 1, area.y + 1)
f.set_cursor(
(area.x + self.input_cursor_position + 1)
.clamp(area.x + 1, area.x + area.width.saturating_sub(2)),
area.y + 1,
)
}
}
}

Loading…
Cancel
Save