method set_active b =
      if b or (active <> b) then
        begin
          view#set_editable b;
          view#set_cursor_visible b;
          active <- b;
          if b then
            view#misc#grab_focus ()
          else
            (
             self#clear;
             for i = 1 to nb_waits do GMain.quit () done;
             nb_waits <- 0
            );
          on_active_change b
        end