]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/gTopLevel/texTermEditor.ml
removed dependency on netclient, use http_client module from ocaml-http
[helm.git] / helm / gTopLevel / texTermEditor.ml
index 028a17710ed5e03399c2fc0284c4302095806d5e..c89fe04b2da80a94b53d0d38f4b425b1e040b354 100644 (file)
@@ -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 ;