mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-331139 lst: recover from our highlighter being destroyed externally
GitOrigin-RevId: f06eaa6e76611822cfed2d5e6476af2990a133a8
This commit is contained in:
committed by
intellij-monorepo-bot
parent
c992ce6040
commit
fcb253ad49
@@ -59,10 +59,15 @@ abstract class LineStatusMarkerRenderer internal constructor(
|
||||
updateQueue.queue(DisposableUpdate.createDisposable(updateQueue, "update", Runnable { updateHighlighters() }))
|
||||
}
|
||||
|
||||
/**
|
||||
* Recover from an evildoer destroying all the highlighters for the Editor/Project/IDE.
|
||||
* IDEA-331139 IDEA-246614
|
||||
*/
|
||||
private fun scheduleValidateHighlighter() {
|
||||
// IDEA-246614
|
||||
updateQueue.queue(DisposableUpdate.createDisposable(updateQueue, "validate highlighter", Runnable {
|
||||
if (disposed || gutterHighlighter.isValid()) return@Runnable
|
||||
|
||||
LOG.warn("Line marker highlighter was recovered. This incident will be reported.")
|
||||
disposeHighlighter(gutterHighlighter)
|
||||
gutterHighlighter = createGutterHighlighter()
|
||||
updateHighlighters()
|
||||
@@ -93,6 +98,11 @@ abstract class LineStatusMarkerRenderer internal constructor(
|
||||
@RequiresEdt
|
||||
private fun updateHighlighters() {
|
||||
if (disposed) return
|
||||
|
||||
if (!gutterHighlighter.isValid()) {
|
||||
scheduleValidateHighlighter()
|
||||
}
|
||||
|
||||
repaintGutter()
|
||||
updateErrorStripeHighlighters()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user