fix clip bounds calculation for spanned cells
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/painter/layer/CellLayerPainter.java b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/painter/layer/CellLayerPainter.java
index d9b803b..b28f76c 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/painter/layer/CellLayerPainter.java
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/painter/layer/CellLayerPainter.java
@@ -100,10 +100,13 @@
Rectangle adjustedCellBounds = layer.getLayerPainter().adjustCellBounds(columnPosition, rowPosition, cell.getBounds());
if (cellPainter != null) {
Rectangle originalClipping = gc.getClipping();
+
int startX = getStartXOfColumnPosition(columnPosition);
int startY = getStartYOfRowPosition(rowPosition);
- int endX = getStartXOfColumnPosition(columnPosition + cell.getColumnSpan());
- int endY = getStartYOfRowPosition(rowPosition + cell.getRowSpan());
+
+ int endX = getStartXOfColumnPosition(cell.getOriginColumnPosition() + cell.getColumnSpan());
+ int endY = getStartYOfRowPosition(cell.getOriginRowPosition() + cell.getRowSpan());
+
Rectangle clipBounds = new Rectangle(startX, startY, endX - startX, endY - startY);
Rectangle adjustedClipBounds = layer.getLayerPainter().adjustCellBounds(columnPosition, rowPosition, clipBounds);
gc.setClipping(adjustedClipBounds);