more robust plugin restart;
authorwenzelm
Sun, 20 Aug 2017 18:45:42 +0200
changeset 66459 b578ef1a8b40
parent 66458 42d0d5c77c78
child 66460 f7b0d6fb417a
more robust plugin restart;
src/Tools/jEdit/src/Isabelle.props
src/Tools/jEdit/src/plugin.scala
--- a/src/Tools/jEdit/src/Isabelle.props	Sun Aug 20 18:30:20 2017 +0200
+++ b/src/Tools/jEdit/src/Isabelle.props	Sun Aug 20 18:45:42 2017 +0200
@@ -9,7 +9,7 @@
 plugin.isabelle.jedit.Plugin.description=Isabelle Prover IDE
 
 #system parameters
-plugin.isabelle.jedit.Plugin.activate=startup
+plugin.isabelle.jedit.Plugin.activate=defer
 plugin.isabelle.jedit.Plugin.usePluginHome=false
 
 #dependencies
--- a/src/Tools/jEdit/src/plugin.scala	Sun Aug 20 18:30:20 2017 +0200
+++ b/src/Tools/jEdit/src/plugin.scala	Sun Aug 20 18:45:42 2017 +0200
@@ -281,6 +281,12 @@
   @volatile private var startup_failure: Option[Throwable] = None
   @volatile private var startup_notified = false
 
+  private def init_view(view: View)
+  {
+    Session_Build.check_dialog(view)
+    Keymap_Merge.check_dialog(view)
+  }
+
   override def handleMessage(message: EBMessage)
   {
     GUI_Thread.assert {}
@@ -306,10 +312,7 @@
           }
 
           val view = jEdit.getActiveView()
-
-          Session_Build.check_dialog(view)
-
-          Keymap_Merge.check_dialog(view)
+          init_view(view)
 
           PIDE.editor.hyperlink_position(true, Document.Snapshot.init,
             JEdit_Sessions.session_info(options.value).open_root).foreach(_.follow(view))
@@ -437,6 +440,9 @@
         startup_notified = false
         Log.log(Log.ERROR, this, exn)
     }
+
+    val view = jEdit.getActiveView()
+    if (view != null) init_view(view)
   }
 
   override def stop()