diff options
Diffstat (limited to 'otherlibs/labltk/browser/shell.ml')
-rw-r--r-- | otherlibs/labltk/browser/shell.ml | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/otherlibs/labltk/browser/shell.ml b/otherlibs/labltk/browser/shell.ml index 98e33bbc4..9dbe8a260 100644 --- a/otherlibs/labltk/browser/shell.ml +++ b/otherlibs/labltk/browser/shell.ml @@ -97,12 +97,14 @@ object (self) if reading then reading <- false else Text.mark_set textw mark:"input" index:(`Mark"insert",[`Linestart;`Char 1]); + Text.mark_set textw mark:"insert"index:(`Mark"insert",[`Line 1]); self#lex start:(`Mark"input",[`Linestart]) (); let s = (* input is one character before real input *) Text.get textw start:(`Mark"input",[`Char 1]) end:(`Mark"insert",[]) in h#add s; + Text.insert textw index:(`Mark"insert",[]) text:"\n"; self#send s; self#send "\n" method private paste ev = @@ -116,7 +118,7 @@ object (self) let rec bindings = [ ([[],`KeyPress],[`Char],fun ev -> self#keypress ev.ev_Char); ([[],`KeyRelease],[`Char],fun ev -> self#keyrelease ev.ev_Char); - ([[],`KeyPressDetail"Return"],[],fun _ -> self#return); + (* [[],`KeyPressDetail"Return"],[],fun _ -> self#return; *) ([[],`ButtonPressDetail 2], [`MouseX; `MouseY], self#paste); ([[`Alt],`KeyPressDetail"p"],[],fun _ -> self#history `previous); ([[`Alt],`KeyPressDetail"n"],[],fun _ -> self#history `next); @@ -128,6 +130,8 @@ object (self) List.iter bindings fun:(fun (events,fields,f) -> bind textw :events action:(`Set(fields,f))); + bind textw events:[[],`KeyPressDetail"Return"] + action:(`Setbreakable([], fun _ -> self#return; break())); begin try List.iter [in1;err1] fun: begin fun fd -> |