This commit gets rid of a thin grey line that appears under the active
tabcontrol tab when using the default Aqua LAF on MacOS retina (2x scaled)
screens. See screenshot attached to the JIRA ticket and pull request.

<img width="257" alt="thin grey line fixed" 
src="https://user-images.githubusercontent.com/886243/45712372-26f76b80-bb5a-11e8-9191-fb1f0d9f611e.png";>

AquaEditorTabCellRenderer.AquaPainter.getInteriorPolygon previously returned a
rectangle whose bottom two points were at Y coordinate (y + height - 1).
Presumably this was meant to ensure that a point at (0, y + height) would not be
considered "inside" the rectangle. That's already the case when the bottom two
points are added at (y + height) and in the order used here, however. And on
Retina displays, subtracting 1 causes trouble in painting because each logical
pixel corresponds to two, not one, physical pixel. Looking through call sites of
getInteriorPolygon, it should be safe to remove the "-1" adjustment. There are
other LAFs that don't include it, too.

Tested on MacOS both with and without Retina enabled, to make sure there are no
new tab control bugs resulting from the fix. Tested clicking around the tab
control tab, and dragging and dropping tabs.

[ Full content available at: 
https://github.com/apache/incubator-netbeans/pull/884 ]
This message was relayed via gitbox.apache.org for [email protected]

Reply via email to