Don't compute style updates if no listerners #330
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As noted in #315, annotator can get into a situation where it uses a lot of CPU. In my cases, this happens when the CSS is very large but no windows are open that include annotation views.
This PR adds a check to the listerner code so that if there are no open views of the annotation, it does not conduct the (potentially quite expensive) concatenation of CSS styles and comparison to the previous style.
This still results in high-CPU usage if the annotation view is open and there are many many CSS files (or a few very large ones, like with embedded fonts/icons) but it's a massive improvement in overall performance/usage in the 'idle' case.