equal
deleted
inserted
replaced
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) |