X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=helm%2FgTopLevel%2FtexTermEditor.ml;h=c89fe04b2da80a94b53d0d38f4b425b1e040b354;hb=4be3764541d8caa00737a686156907e7f2ae720c;hp=028a17710ed5e03399c2fc0284c4302095806d5e;hpb=0cb00e631ea54deacbfde12e1c458ca602b97870;p=helm.git diff --git a/helm/gTopLevel/texTermEditor.ml b/helm/gTopLevel/texTermEditor.ml index 028a17710..c89fe04b2 100644 --- a/helm/gTopLevel/texTermEditor.ml +++ b/helm/gTopLevel/texTermEditor.ml @@ -123,7 +123,10 @@ module Make(C:Disambiguate.Callbacks) = mmlwidget#thaw end else if key = GdkKeysyms._BackSpace then - Mathml_editor.drop tex_editor false ; + Mathml_editor.drop tex_editor + (List.mem `CONTROL (GdkEvent.Key.state e)) + else if key = GdkKeysyms._v then + ignore (mmlwidget#misc#convert_selection "STRING" Gdk.Atom.primary); let adj = mmlwidget#get_hadjustment in mmlwidget#thaw ; adj#set_value adj#upper ; @@ -155,6 +158,19 @@ module Make(C:Disambiguate.Callbacks) = ~useCapture:false in object(self) + + initializer + ignore (mmlwidget#misc#connect#selection_received + ~callback: (fun selection_data ~time -> + let input = try selection_data#data with Gpointer.Null -> "" in + mmlwidget#freeze ; + ignore (Mathml_editor.freeze tex_editor) ; + for i = 0 to String.length input - 1 do + Mathml_editor.push tex_editor input.[i] + done; + ignore (Mathml_editor.thaw tex_editor) ; + mmlwidget#thaw)) + method coerce = mmlwidget#coerce method reset = mmlwidget#freeze ;