src/Tools/jEdit/src/document_view.scala
changeset 61195 42419fe6f660
parent 59129 6959ceb53ac8
child 61723 7feee72b5897
equal deleted inserted replaced
61194:e4699ef5cf90 61195:42419fe6f660
   192   }
   192   }
   193 
   193 
   194 
   194 
   195   /* text status overview left of scrollbar */
   195   /* text status overview left of scrollbar */
   196 
   196 
   197   private object overview extends Text_Overview(this)
   197   private val overview = new Text_Overview(this)
   198   {
       
   199     val delay_repaint =
       
   200       GUI_Thread.delay_first(PIDE.options.seconds("editor_update_delay")) { repaint() }
       
   201   }
       
   202 
   198 
   203 
   199 
   204   /* main */
   200   /* main */
   205 
   201 
   206   private val main =
   202   private val main =
   207     Session.Consumer[Any](getClass.getName) {
   203     Session.Consumer[Any](getClass.getName) {
   208       case _: Session.Raw_Edits =>
   204       case _: Session.Raw_Edits => overview.postpone()
   209         overview.delay_repaint.postpone(PIDE.options.seconds("editor_input_delay"))
       
   210 
   205 
   211       case changed: Session.Commands_Changed =>
   206       case changed: Session.Commands_Changed =>
   212         val buffer = model.buffer
   207         val buffer = model.buffer
   213         GUI_Thread.later {
   208         GUI_Thread.later {
   214           JEdit_Lib.buffer_lock(buffer) {
   209           JEdit_Lib.buffer_lock(buffer) {
   219                 snapshot.load_commands.exists(changed.commands.contains)
   214                 snapshot.load_commands.exists(changed.commands.contains)
   220 
   215 
   221               if (changed.assignment || load_changed ||
   216               if (changed.assignment || load_changed ||
   222                   (changed.nodes.contains(model.node_name) &&
   217                   (changed.nodes.contains(model.node_name) &&
   223                    changed.commands.exists(snapshot.node.commands.contains)))
   218                    changed.commands.exists(snapshot.node.commands.contains)))
   224                 overview.delay_repaint.invoke()
   219                 overview.invoke()
   225 
   220 
   226               val visible_lines = text_area.getVisibleLines
   221               val visible_lines = text_area.getVisibleLines
   227               if (visible_lines > 0) {
   222               if (visible_lines > 0) {
   228                 if (changed.assignment || load_changed)
   223                 if (changed.assignment || load_changed)
   229                   text_area.invalidateScreenLineRange(0, visible_lines)
   224                   text_area.invalidateScreenLineRange(0, visible_lines)
   273 
   268 
   274     session.raw_edits -= main
   269     session.raw_edits -= main
   275     session.commands_changed -= main
   270     session.commands_changed -= main
   276     Isabelle.structure_matchers(JEdit_Lib.buffer_mode(text_area.getBuffer)).
   271     Isabelle.structure_matchers(JEdit_Lib.buffer_mode(text_area.getBuffer)).
   277       foreach(text_area.removeStructureMatcher(_))
   272       foreach(text_area.removeStructureMatcher(_))
   278     text_area.removeLeftOfScrollBar(overview); overview.delay_repaint.revoke()
   273     text_area.removeLeftOfScrollBar(overview); overview.revoke()
   279     text_area.removeCaretListener(caret_listener); delay_caret_update.revoke()
   274     text_area.removeCaretListener(caret_listener); delay_caret_update.revoke()
   280     text_area.removeKeyListener(key_listener)
   275     text_area.removeKeyListener(key_listener)
   281     text_area.getGutter.removeExtension(gutter_painter)
   276     text_area.getGutter.removeExtension(gutter_painter)
   282     rich_text_area.deactivate()
   277     rich_text_area.deactivate()
   283     painter.removeExtension(update_view)
   278     painter.removeExtension(update_view)