-
Notifications
You must be signed in to change notification settings - Fork 17.4k
Showing line numbers disables sub-pixel AA on tabs, status-bar etc. #7904
Comments
Hey @simurai, thanks for the thorough report and explanations. I traveled back in time to 7e9e8e0 (namely, the commit before merging #7101) and I found out subpixel anti-aliasing was still not working as of that version and therefore I think we can exclude tiling as the cause of this issue. Apparently the layer is being created because of two reasons: I think the elements that “may overlap” are the tiles’ layers (or the whole @simurai: would it be possible to simply give the status bar div a background color? That could enable us to get subpixel anti-aliasing back and hopefully stop worrying about the underlying layers creation. Nevertheless, I’d agree it may be interesting to understand why Chrome is automatically generating those layers. |
I think we can use it then, but let’s make sure to document it so that it’s 100% clear why we’re setting it. Not sure if we should still set the @simurai: thoughts? 💭 If setting the |
Sorry to bud in, but would the explicit setting of the background color potentially interfere with future changes to the status-bar? I'm thinking of open requests like extending the status-bar to the whole workspace, rather than just within editors and who knows what people want to do with it. |
Ok, adding .status-bar {
background-color: #333;
transform: translateZ(0);
} Future changes should still be ok, but not sure if that's bad for performance because on every key stroke it has to repaint the line/column count and push another layer? Also, the same would need to be done for the tabs and maybe other places. Doing the Anyways.. It's not super urgent and we can first test some more. |
Problem: The GPU layer added to the .gutter .tiles cause the surounding UI to also composite layers, like the tas or the status-bar. This disables subpixel anti-aliasing and text doesn't look that sharp. Eventough the `.gutter` has `overflow: hidden`, it seems Chrome still thinks there is a chance of overlapping and thus creates the extra layers. Solution: Creating an own stacking context for the `.gutter` seems to fix it. Issue #7904
This issue has been automatically locked since there has not been any recent activity after it was closed. If you can still reproduce this issue in Safe Mode then please open a new issue and fill out the entire issue template to ensure that we have enough information to address your issue. Thanks! |
In atom/one-dark-ui#82, @Wiox noticed that sub-pixel anti aliasing is not only disabled for the tabs, but also on the fuzzy finder and the status bar.
It seems it's caused by the line number tiles getting promoted to a GPU layer and probably related to #7101. Kinda strange that it affects different areas.
Something that might be worth looking into is using
will-change
. It also adds a GPU layer for the line numbers, but doesn't affect the rest. Notice the orange "composited layer borders" only appear in the status bar with-webkit-transform: translate3d(0px, 0px, 0px);
but not withwill-change: transform;
.Now, I heard that
will-change
should only be used when interacting, like on hover or so.. and not kept permanently enabled. So not sure if that would help. /cc @as-cii @nathansoboEdit: Sorry, I just realized that the
transform
is needed to actually move line numbers. So can't be replaced. 😁The text was updated successfully, but these errors were encountered: