]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/matitaGui.ml
building/cleaning a devel now makes buttons insensitive
[helm.git] / helm / matita / matitaGui.ml
index d21241a8dd4bc3c84afcb958b440454221a47196..f83e01913d7fb1c26281e4ef5a60492e39301b67 100644 (file)
@@ -347,10 +347,12 @@ class gui () =
         (* interface lockers *)
       let lock_world _ =
         main#buttonsToolbar#misc#set_sensitive false;
+        develList#buttonsHbox#misc#set_sensitive false;
         source_view#set_editable false
       in
       let unlock_world _ =
         main#buttonsToolbar#misc#set_sensitive true;
+        develList#buttonsHbox#misc#set_sensitive true;
         source_view#set_editable true
       in
       let locker f = 
@@ -374,39 +376,39 @@ class gui () =
         | [[name;_]] -> MatitamakeLib.development_for_name name
         | _ -> assert false 
       in
+      let refresh () = 
+        while Glib.Main.pending () do 
+          ignore(Glib.Main.iteration false); 
+        done
+      in
       connect_button develList#newButton
         (fun () -> 
           next_devel_must_contain <- None;
           newDevel#toplevel#misc#show());
       connect_button develList#deleteButton
-        (fun () -> 
+        (locker (fun () -> 
           (match get_devel_selected () with
           | None -> ()
-          | Some d -> MatitamakeLib.destroy_development d);
-          refresh_devels_win ());
-      let refresh () = 
-        while Glib.Main.pending () do 
-          ignore(Glib.Main.iteration false); 
-        done
-      in
+          | Some d -> MatitamakeLib.destroy_development_in_bg refresh d);
+          refresh_devels_win ()));
       connect_button develList#buildButton 
-        (fun () -> 
+        (locker (fun () -> 
           match get_devel_selected () with
           | None -> ()
           | Some d -> 
               let build = locker 
                 (fun () -> MatitamakeLib.build_development_in_bg refresh d)
               in
-              ignore(build ()));
+              ignore(build ())));
       connect_button develList#cleanButton 
-        (fun () -> 
+        (locker (fun () -> 
           match get_devel_selected () with
           | None -> ()
           | Some d -> 
               let clean = locker 
                 (fun () -> MatitamakeLib.clean_development_in_bg refresh d)
               in
-              ignore(clean ()));
+              ignore(clean ())));
       connect_button develList#closeButton 
         (fun () -> develList#toplevel#misc#hide());
       ignore(develList#toplevel#event#connect#delete