Unified · Split
| @@ -3385,34 +3385,24 @@ let viewkeyboard key mask = · 3384 unmodified lines | ||
| 3385 | 3385 | | [] -> () |
| 3386 | 3386 | | (pageno, _, (_, y0, _, y1, _, y2, _, y3)) :: _ -> |
| 3387 | 3387 | f pageno (y0, y1, y2, y3) |
| 3388 | − and yminmax (y0, y1, y2, y3) = | |
| 3389 | − let ym = min y0 y1 |> min y2 |> min y3 |> truncate in | |
| 3390 | − let yM = max y0 y1 |> max y2 |> max y3 |> truncate in | |
| 3391 | − ym, yM | |
| 3392 | − in | |
| 3388 | + and ymin (y0, y1, y2, y3) = min y0 y1 |> min y2 |> min y3 |> truncate | |
| 3389 | + and ymax (y0, y1, y2, y3) = max y0 y1 |> max y2 |> max y3 |> truncate in | |
| 3393 | 3390 | let ondone msg = state.text <- msg |
| 3394 | 3391 | and zmod _ _ k = |
| 3395 | 3392 | match [@warning "-fragile-match"] k with |
| 3396 | 3393 | | Keys.Ascii 'z' -> |
| 3397 | 3394 | let f pageno ys = |
| 3398 | − let ym, yM = yminmax ys in | |
| 3399 | − let hh = (yM - ym)/2 in | |
| 3400 | − gotopage1 pageno (ym + hh - state.winh/2) | |
| 3395 | + let hh = (ymax ys - ymin ys)/2 in | |
| 3396 | + gotopage1 pageno (ymin ys + hh - state.winh/2) | |
| 3401 | 3397 | in |
| 3402 | 3398 | yloc f; |
| 3403 | 3399 | TEdone "center" |
| 3404 | 3400 | | Keys.Ascii 't' -> |
| 3405 | − let f pageno ys = | |
| 3406 | − let ym, _ = yminmax ys in | |
| 3407 | − gotopage1 pageno ym | |
| 3408 | − in | |
| 3401 | + let f pageno ys = gotopage1 pageno @@ ymin ys in | |
| 3409 | 3402 | yloc f; |
| 3410 | 3403 | TEdone "top" |
| 3411 | 3404 | | Keys.Ascii 'b' -> |
| 3412 | − let f pageno ys = | |
| 3413 | − let _, yM = yminmax ys in | |
| 3414 | − gotopage1 pageno (yM - state.winh) | |
| 3415 | − in | |
| 3405 | + let f pageno ys = gotopage1 pageno (ymax ys - state.winh) in | |
| 3416 | 3406 | yloc f; |
| 3417 | 3407 | TEdone "bottom" |
| 3418 | 3408 | | _ -> TEstop |