]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/gTopLevel/texTermEditor.ml
added support for X11 clipboard pasting with CTRL-V shortcut
[helm.git] / helm / gTopLevel / texTermEditor.ml
index d97eb51c46addf97deff9a7d64141b724b421696..0479388286f8698b93080b883017cb972647b516 100644 (file)
@@ -123,9 +123,14 @@ module Make(C:Disambiguate.Callbacks) =
            mmlwidget#thaw
           end
          else if key = GdkKeysyms._BackSpace then
-          Mathml_editor.drop tex_editor false ;
-         mmlwidget#thaw ;
-         false) in
+          Mathml_editor.drop tex_editor
+           (List.mem `CONTROL (GdkEvent.Key.state e))
+         else if key = GdkKeysyms._v then
+           ignore (mmlwidget#misc#convert_selection "STRING" `PRIMARY);
+         let adj = mmlwidget#get_hadjustment in
+          mmlwidget#thaw ;
+          adj#set_value adj#upper ;
+          false) in
     let id_to_uris =
      match share_id_to_uris_with with
         None -> ref empty_id_to_uris
@@ -153,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 ;