X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2Fmatita%2FmatitaScript.ml;h=e0e4227dd1f5709d921b4bd57f3bf8b0df6594dd;hb=ad0292419b0204384ff55c946a6aabb73a47c42b;hp=aae0e93d78a857fcbf14587eaa736c59f9bd526a;hpb=5b493dc2698d1f971484df9962089523e525ec3d;p=helm.git diff --git a/helm/matita/matitaScript.ml b/helm/matita/matitaScript.ml index aae0e93d7..e0e4227dd 100644 --- a/helm/matita/matitaScript.ml +++ b/helm/matita/matitaScript.ml @@ -383,13 +383,15 @@ let fresh_script_id = let i = ref 0 in fun () -> incr i; !i -class script ~(buffer: GText.buffer) ~(init: MatitaTypes.status) +class script ~(view: GText.view) + ~(init: MatitaTypes.status) ~(mathviewer: MatitaTypes.mathViewer) ~set_star ~ask_confirmation ~urichooser ~develcreator () = +let buffer = view#buffer in object (self) val scriptId = fresh_script_id () @@ -519,6 +521,12 @@ List.iter (fun s -> prerr_endline ("'" ^ s ^ "'")) new_statements; Incomplete_proof (_,goal) -> self#setGoal goal | _ -> () end ; + let mark_position = buffer#get_iter_at_mark mark in + if view#move_mark_onscreen mark then + begin + buffer#move_mark mark mark_position; + view#scroll_to_mark ~use_align:true ~xalign:1.0 ~yalign:0.1 mark; + end; while Glib.Main.pending () do ignore(Glib.Main.iteration false); done method clean_dirty_lock = @@ -681,10 +689,10 @@ end let _script = ref None -let script ~buffer ~init ~mathviewer ~urichooser ~develcreator ~ask_confirmation ~set_star () +let script ~view ~init ~mathviewer ~urichooser ~develcreator ~ask_confirmation ~set_star () = let s = new script - ~buffer ~init ~mathviewer ~ask_confirmation ~urichooser ~develcreator ~set_star () + ~view ~init ~mathviewer ~ask_confirmation ~urichooser ~develcreator ~set_star () in _script := Some s; s