partly reverted previous fix: update only gutter size on layout to avoid scrolling slow down, but still fix blinking

This commit is contained in:
Egor.Ushakov
2014-12-08 18:23:52 +03:00
parent 2dc893734e
commit dec4c7a36a
2 changed files with 20 additions and 5 deletions
@@ -544,8 +544,12 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse
}
public void updateSize() {
updateSize(false);
}
void updateSize(boolean onLayout) {
int prevHash = sizeHash();
updateSizeInner();
updateSizeInner(onLayout);
if (prevHash != sizeHash()) {
fireResized();
@@ -553,9 +557,11 @@ class EditorGutterComponentImpl extends EditorGutterComponentEx implements Mouse
repaint();
}
private void updateSizeInner() {
calcIconAreaWidth();
calcAnnotationsSize();
private void updateSizeInner(boolean onLayout) {
if (!onLayout) {
calcIconAreaWidth();
calcAnnotationsSize();
}
calcAnnotationExtraSize();
}
@@ -959,7 +959,6 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
public void componentResized(@NotNull ComponentEvent e) {
myMarkupModel.recalcEditorDimensions();
myMarkupModel.repaint(-1, -1);
myGutterComponent.updateSize();
}
});
}
@@ -6755,6 +6754,16 @@ public final class EditorImpl extends UserDataHolderBase implements EditorEx, Hi
setupCorners();
}
@Override
public void layout() {
if (isInDistractionFreeMode()) {
// re-calc gutter extra size after editor size is set
// & layout once again to avoid blinking
myGutterComponent.updateSize(true);
}
super.layout();
}
@Override
protected void processMouseWheelEvent(@NotNull MouseWheelEvent e) {
if (mySettings.isWheelFontChangeEnabled() && !MouseGestureManager.getInstance().hasTrackpad()) {