From 761271fac03a96bc19880eb28b6f9951b8b78d4d Mon Sep 17 00:00:00 2001 From: malc Date: Sun, 17 Feb 2013 17:15:10 +0400 Subject: [PATCH] Ma[gic][dness] --- main.ml | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/main.ml b/main.ml index 9143478..ab5fdb1 100644 --- a/main.ml +++ b/main.ml @@ -6988,24 +6988,31 @@ let ract cmds = match cl with | "reload" :: [] -> reload () | "goto" :: args :: [] -> + let cmd, _ = state.geomcmds in scan args "%u %f %f" (fun pageno x y -> onpagerect pageno (fun w h -> let top = y /. h in - let _,w1,_,leftx = getpagedim pageno in - let sw = float w1 /. w in - let x = sw *. x in - let x = leftx + state.x + truncate x in - let newpan = - if x < 0 || x >= state.winw - state.scrollw - then (state.x <- state.x - x; true) - else false - in - let y, h = getpageyh pageno in - let y = y + (truncate (top *. float h)) in - let dy = y - state.y in - if newpan || not (dy > 0 && dy < state.winh - state.hscrollh) - then gotoy y + if String.length cmd = 0 + then ( + let _,w1,_,leftx = getpagedim pageno in + let sw = float w1 /. w in + let x = sw *. x in + let x = leftx + state.x + truncate x in + let newpan = + if x < 0 || x >= state.winw - state.scrollw + then (state.x <- state.x - x; true) + else false + in + let y, h = getpageyh pageno in + let y = y + (truncate (top *. float h)) in + let dy = y - state.y in + if newpan || not (dy > 0 && dy < state.winh - state.hscrollh) + then gotoy y + ) + else ( + state.anchor <- pageno, top /. h, 0.0 + ) ) ) | "goto1" :: args :: [] -> scan args "%u %f" gotopage -- 2.11.4.GIT