summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Thiel <sthiel@thoughtworks.com>2019-06-08 05:22:20 +0530
committerSebastian Thiel <sthiel@thoughtworks.com>2019-06-08 05:22:20 +0530
commit49edb7654ce3380bcde28630645af3740cf1a07a (patch)
tree439b21e63e3219ae9baae56edbe8dec592dd3bea
parent984bf4fcce05cd5d495511123c2c3b6906b96f6d (diff)
Pune/India: Warning window follows user selection
-rw-r--r--src/interactive/widgets/mark.rs17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/interactive/widgets/mark.rs b/src/interactive/widgets/mark.rs
index a70f830..f73d993 100644
--- a/src/interactive/widgets/mark.rs
+++ b/src/interactive/widgets/mark.rs
@@ -230,11 +230,24 @@ impl MarkPane {
let list_area = if self.has_focus {
let (help_line_area, list_area) = {
+ let help_at_bottom =
+ selected.unwrap_or(0) >= inner_area.height.saturating_sub(1) as usize / 2;
+ let constraints = {
+ let mut c = vec![Constraint::Length(1), Constraint::Max(256)];
+ if help_at_bottom {
+ c.reverse();
+ }
+ c
+ };
let regions = Layout::default()
.direction(Direction::Vertical)
- .constraints([Constraint::Length(1), Constraint::Max(256)].as_ref())
+ .constraints(constraints)
.split(inner_area);
- (regions[0], regions[1])
+
+ match help_at_bottom {
+ true => (regions[1], regions[0]),
+ false => (regions[0], regions[1]),
+ }
};
let default_style = Style {