diff options
author | Sebastian Thiel <sthiel@thoughtworks.com> | 2019-06-08 05:22:20 +0530 |
---|---|---|
committer | Sebastian Thiel <sthiel@thoughtworks.com> | 2019-06-08 05:22:20 +0530 |
commit | 49edb7654ce3380bcde28630645af3740cf1a07a (patch) | |
tree | 439b21e63e3219ae9baae56edbe8dec592dd3bea /src/interactive | |
parent | 984bf4fcce05cd5d495511123c2c3b6906b96f6d (diff) |
Pune/India: Warning window follows user selection
Diffstat (limited to 'src/interactive')
-rw-r--r-- | src/interactive/widgets/mark.rs | 17 |
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 { |