aboutsummaryrefslogtreecommitdiffhomepage
path: root/ide/nanoPG.ml
diff options
context:
space:
mode:
authorGravatar Enrico Tassi <Enrico.Tassi@inria.fr>2014-04-09 10:32:59 +0200
committerGravatar Enrico Tassi <Enrico.Tassi@inria.fr>2014-04-09 10:33:11 +0200
commit66f19ac2fcb3af564bd54077015597f97084b824 (patch)
treeae3d7b7a5158822c96d763e075370fa5040f16b2 /ide/nanoPG.ml
parentfda8ba0154742f9cbab2b88eed88d52c1f01129c (diff)
nanoPG: when the cursor moves, scroll to make it appear on screen
Diffstat (limited to 'ide/nanoPG.ml')
-rw-r--r--ide/nanoPG.ml6
1 files changed, 3 insertions, 3 deletions
diff --git a/ide/nanoPG.ml b/ide/nanoPG.ml
index d4b32b9ce..c6ac56992 100644
--- a/ide/nanoPG.ml
+++ b/ide/nanoPG.ml
@@ -127,15 +127,15 @@ let run key gui action status =
b#place_cursor ~where:(b#get_iter_at_mark `SEL_BOUND);
status
| Motion f ->
- let b = (ct gui).script#source_buffer in
+ let b, script = (ct gui).script#source_buffer, (ct gui).script in
let sel_mode = status.sel || List.mem `SHIFT (GdkEvent.Key.state key) in
let i =
if sel_mode then b#get_iter_at_mark `SEL_BOUND
else b#get_iter_at_mark `INSERT in
let where, status = f status i in
let sel_mode = status.sel || List.mem `SHIFT (GdkEvent.Key.state key) in
- if sel_mode then b#move_mark `SEL_BOUND ~where
- else b#place_cursor ~where;
+ if sel_mode then (b#move_mark `SEL_BOUND ~where; script#scroll_mark_onscreen `SEL_BOUND)
+ else (b#place_cursor ~where; script#scroll_mark_onscreen `INSERT);
status
let emacs = empty