From 27c9bec89edd9ec43bc581599d0350cdf912c4b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A1s=20P=C3=A9teri?= Date: Mon, 27 Nov 2023 16:40:01 +0100 Subject: [PATCH] Avoid lower corners when drawing square tabs (eclipse-platform#912) The last points in the polyline were visiting the lower right and lower left corners of the CTabFolder's client area before heading back to the starting point. These are now removed. This makes "computeSquareTabOutline" behave the same way as "computeRoundTabOutline" does, which did not attempt to draw lines outside of the tab itself (also a horizontal leading/trailing line when in active mode). --- .../workbench/renderers/swt/CTabRendering.java | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/CTabRendering.java b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/CTabRendering.java index 2bc0d8f3eaf..d883ec57b96 100644 --- a/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/CTabRendering.java +++ b/bundles/org.eclipse.e4.ui.workbench.renderers.swt/src/org/eclipse/e4/ui/workbench/renderers/swt/CTabRendering.java @@ -400,8 +400,12 @@ private int[] computeSquareTabOutline(boolean onBottom, int startX, int endX, in || Objects.equals(outerKeylineColor, parent.getBackground()) ? 0 : 1); - points[index++] = margin; - points[index++] = bottomY; + + if (active) { + points[index++] = margin; + points[index++] = bottomY; + } + points[index++] = startX; points[index++] = bottomY; @@ -419,15 +423,6 @@ private int[] computeSquareTabOutline(boolean onBottom, int startX, int endX, in points[index++] = bottomY; } - points[index++] = parentSize.x - 1 - margin; - points[index++] = parentSize.y - 1; - - points[index++] = points[0]; - points[index++] = parentSize.y - 1; - - points[index++] = points[0]; - points[index++] = points[1]; - int[] tmpPoints = new int[index]; System.arraycopy(points, 0, tmpPoints, 0, index);