diff -r 37e8e30f21a0 o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/NimbusEditorTabCellRenderer.java --- a/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/NimbusEditorTabCellRenderer.java Mon Feb 02 00:36:02 2009 +0100 +++ b/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/NimbusEditorTabCellRenderer.java Mon Feb 02 13:46:57 2009 +0100 @@ -50,6 +50,7 @@ import java.awt.Insets; import java.awt.Polygon; import java.awt.Rectangle; +import java.awt.Shape; import java.awt.image.BufferedImage; import javax.swing.Icon; import javax.swing.JComponent; @@ -106,7 +107,16 @@ private static void paintTabBackground (Graphics g, int index, Component c, int x, int y, int w, int h) { + + Shape clip = g.getClip(); NimbusEditorTabCellRenderer ren = (NimbusEditorTabCellRenderer) c; + + w +=1; + boolean isPreviousTabSelected = ren.isPreviousTabSelected(); + if (isPreviousTabSelected) { + g.setClip(x+1, y, w-1, h); + } + Object o = null; if (ren.isSelected()) { if (ren.isActive()) { @@ -126,6 +136,10 @@ painter.paint(g2d, null, w, h); g.drawImage(bufIm, x, y, null); } else { + } + + if (isPreviousTabSelected) { + g.setClip(clip); } } diff -r 37e8e30f21a0 o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/NimbusViewTabDisplayerUI.java --- a/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/NimbusViewTabDisplayerUI.java Mon Feb 02 00:36:02 2009 +0100 +++ b/o.n.swing.tabcontrol/src/org/netbeans/swing/tabcontrol/plaf/NimbusViewTabDisplayerUI.java Mon Feb 02 13:46:57 2009 +0100 @@ -51,6 +51,7 @@ import java.awt.Graphics2D; import java.awt.Insets; import java.awt.Rectangle; +import java.awt.Shape; import java.awt.image.BufferedImage; import org.netbeans.swing.tabcontrol.TabDisplayer; import javax.swing.plaf.ComponentUI; @@ -207,6 +208,17 @@ */ protected void paintTabBackground(Graphics g, int index, int x, int y, int width, int height) { + boolean isLast = index == getDataModel().size()-1; + if (!isLast) { + width++; + } + + Shape clip = g.getClip(); + boolean isPreviousTabSelected = index-1 == displayer.getSelectionModel().getSelectedIndex(); + if (isPreviousTabSelected) { + g.setClip(x+1, y, width-1, height); + } + Object o = null; if (isSelected(index)) { if (isActive()) { @@ -227,6 +239,10 @@ painter.paint(g2d, null, width, height); g.drawImage(bufIm, x, y, null); } else { + } + + if (isPreviousTabSelected) { + g.setClip(clip); } }