From cca585d989c7fd510dc483a0700b27d6c7b17ba6 Mon Sep 17 00:00:00 2001 From: malc Date: Wed, 3 Oct 2012 11:17:49 +0400 Subject: [PATCH] Change the way space/delete work in corner cases --- main.ml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/main.ml b/main.ml index fc434d6..9e1e6aa 100644 --- a/main.ml +++ b/main.ml @@ -4926,11 +4926,16 @@ let viewkeyboard key mask = | 32 -> (* ' ' *) begin match state.layout with | [] -> () - | l :: _ -> + | l :: rest -> match conf.columns with | Csingle | Cmulti _ -> - let pageno = min (l.pageno+1) (state.pagecount-1) in - gotoy_and_clear_text (getpagey pageno) + if rest == [] && l.pageh > l.pagey + l.pagevh + then + let y = clamp conf.winh in + gotoy_and_clear_text y + else + let pageno = min (l.pageno+1) (state.pagecount-1) in + gotoy_and_clear_text (getpagey pageno) | Csplit (n, _) -> if l.pageno < state.pagecount - 1 || l.pagecol < n - 1 then @@ -4946,8 +4951,12 @@ let viewkeyboard key mask = | l :: _ -> match conf.columns with | Csingle | Cmulti _ -> - let pageno = max 0 (l.pageno-1) in - gotoy_and_clear_text (getpagey pageno) + if l.pagey != 0 + then + gotoy_and_clear_text (clamp ~-(conf.winh)) + else + let pageno = max 0 (l.pageno-1) in + gotoy_and_clear_text (getpagey pageno) | Csplit (n, _) -> let y = if l.pagecol = 0 -- 2.11.4.GIT