Skip to content
Snippets Groups Projects
Commit e17bba7b authored by Loïc Correnson's avatar Loïc Correnson Committed by Allan Blanchard
Browse files

[gui] use global hook

parent 265a9868
No related branches found
No related tags found
No related merge requests found
...@@ -48,7 +48,12 @@ module Messages = ...@@ -48,7 +48,12 @@ module Messages =
end) end)
let () = Ast.add_monotonic_state Messages.self let () = Ast.add_monotonic_state Messages.self
let add_message m = Messages.set (m :: Messages.get ()) let demons = ref []
let add_message m =
begin
Messages.set (m :: Messages.get ()) ;
List.iter (fun fn -> fn()) !demons ;
end
let nb_errors () = let nb_errors () =
Messages.fold_left Messages.fold_left
...@@ -95,7 +100,7 @@ let () = Log.check_not_yet := check_not_yet ...@@ -95,7 +100,7 @@ let () = Log.check_not_yet := check_not_yet
let reset_once_flag () = OnceTable.clear () let reset_once_flag () = OnceTable.clear ()
let add_update_hook fn = Messages.add_hook_on_update (fun _ -> fn ()) let add_global_hook fn = demons := !demons @ [fn]
(* (*
Local Variables: Local Variables:
......
...@@ -44,8 +44,8 @@ val nb_messages: unit -> int ...@@ -44,8 +44,8 @@ val nb_messages: unit -> int
(** Number of stored warning messages, error messages, or all (** Number of stored warning messages, error messages, or all
messages.*) messages.*)
val add_update_hook: (unit -> unit) -> unit val add_global_hook: (unit -> unit) -> unit
(** Register a hook on message addition *) (** Register a global hook (not projectified) on message addition. *)
(* (*
Local Variables: Local Variables:
......
...@@ -1718,12 +1718,12 @@ class main_window () : main_window_extension_points = ...@@ -1718,12 +1718,12 @@ class main_window () : main_window_extension_points =
GtkMisc.Label.set_text label text GtkMisc.Label.set_text label text
in in
register_reset_extension (fun _ -> display_warnings ()); register_reset_extension (fun _ -> display_warnings ());
Messages.add_update_hook (fun () -> Messages.add_global_hook (fun () ->
if not !outdated_warnings then if not !outdated_warnings then
begin begin
outdated_warnings := true ; outdated_warnings := true ;
Wutil.later display_warnings Wutil.later display_warnings
end end
); );
Messages.reset_once_flag (); Messages.reset_once_flag ();
display_warnings (); display_warnings ();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment