added paintBounds to LayerPainter; fixing viewport scrolling
diff --git a/NatTable/core.bnd b/NatTable/core.bnd
index 717ffbf..f45a7d1 100644
--- a/NatTable/core.bnd
+++ b/NatTable/core.bnd
@@ -1,4 +1,6 @@
-Export-Package: org.eclipse.nebula.widgets.nattable.core.data,\
+Export-Package: org.eclipse.nebula.widgets.nattable.core.command,\
+	org.eclipse.nebula.widgets.nattable.core.data,\
+	org.eclipse.nebula.widgets.nattable.core.event,\
 	org.eclipse.nebula.widgets.nattable.core.geometry,\
 	org.eclipse.nebula.widgets.nattable.core.graphics,\
 	org.eclipse.nebula.widgets.nattable.core.layer,\
diff --git a/NatTable/renderer.swt.bnd b/NatTable/renderer.swt.bnd
index 1c12c03..d7bc340 100644
--- a/NatTable/renderer.swt.bnd
+++ b/NatTable/renderer.swt.bnd
@@ -4,5 +4,5 @@
 	org.eclipse.nebula.widgets.nattable.renderer.swt.event.binding,\
 	org.eclipse.nebula.widgets.nattable.renderer.swt.event.matcher,\
 	org.eclipse.nebula.widgets.nattable.renderer.swt.event.mode,\
-	org.eclipse.nebula.widgets.nattable.renderer.swt.geometry,\
-	org.eclipse.nebula.widgets.nattable.renderer.swt.graphics
\ No newline at end of file
+	org.eclipse.nebula.widgets.nattable.renderer.swt.graphics,\
+	org.eclipse.nebula.widgets.nattable.renderer.swt.layer.viewport
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/geometry/packageinfo b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/command/packageinfo
similarity index 100%
copy from NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/geometry/packageinfo
copy to NatTable/src/org/eclipse/nebula/widgets/nattable/core/command/packageinfo
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/geometry/packageinfo b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/event/packageinfo
similarity index 100%
copy from NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/geometry/packageinfo
copy to NatTable/src/org/eclipse/nebula/widgets/nattable/core/event/packageinfo
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PixelArea.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PixelArea.xtend
deleted file mode 100644
index fe547bf..0000000
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PixelArea.xtend
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.eclipse.nebula.widgets.nattable.core.geometry
-
-/**
- * Represents a two-dimensional pixel area.
- */
-interface PixelArea {
-	
-	def PixelRange getHorizontalPixelRange()
-	def PixelRange getVerticalPixelRange()
-	
-}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PixelRangeImpl.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PixelRangeImpl.xtend
new file mode 100644
index 0000000..de97a45
--- /dev/null
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/geometry/PixelRangeImpl.xtend
@@ -0,0 +1,9 @@
+package org.eclipse.nebula.widgets.nattable.core.geometry
+
+@Data
+class PixelRangeImpl implements PixelRange {
+	
+	int start
+	int size
+	
+}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerPainter.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerPainter.xtend
index 7648462..64ec2b7 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerPainter.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerPainter.xtend
@@ -1,13 +1,15 @@
 package org.eclipse.nebula.widgets.nattable.core.layer
 
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
 import org.eclipse.nebula.widgets.nattable.core.graphics.GraphicsContext
 
 interface LayerPainter<T extends Layer> {
 	
 	/**
 	 * @param layer The layer to render.
+	 * @param paintBounds The rectangular pixel area to paint into.
 	 * @param gc The graphics context to render into.
 	 */
-	def void paintLayer(T layer, GraphicsContext gc)
+	def void paintLayer(T layer, PixelRectangle paintBounds, GraphicsContext gc)
 	
 }
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainter.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainter.xtend
index dd0d5aa..7e0d5d5 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainter.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainter.xtend
@@ -1,5 +1,6 @@
 package org.eclipse.nebula.widgets.nattable.core.layer.impl
 
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
 import org.eclipse.nebula.widgets.nattable.core.graphics.GraphicsContext
 import org.eclipse.nebula.widgets.nattable.core.layer.Layer
 import org.eclipse.nebula.widgets.nattable.core.layer.LayerPainter
@@ -15,7 +16,7 @@
 	
 	// LayerPainter interface
 
-	override paintLayer(Layer layer, GraphicsContext gc) {
+	override paintLayer(Layer layer, PixelRectangle paintBounds, GraphicsContext gc) {
 //		gc.clearRect(0, 0, canvas.boundsInLocal.width, canvas.boundsInLocal.height)
 
 		for (columnPosition : 0 ..< layer.getColumnCount)
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/GridLineCellLayerPainter.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/GridLineCellLayerPainter.xtend
index de3f8f8..07382fb 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/GridLineCellLayerPainter.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/GridLineCellLayerPainter.xtend
@@ -12,9 +12,9 @@
 	
 	// LayerPainter interface
 	
-	override paintLayer(Layer layer, GraphicsContext gc) {
+	override paintLayer(Layer layer, PixelRectangle paintBounds, GraphicsContext gc) {
 		// Draw cells
-		super.paintLayer(layer, gc)
+		super.paintLayer(layer, paintBounds, gc)
 		
 		// Draw grid lines
 		drawGridLines(layer, gc)
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/composite/CompositeLayerPainter.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/composite/CompositeLayerPainter.xtend
index 830c496..6216376 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/composite/CompositeLayerPainter.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/composite/CompositeLayerPainter.xtend
@@ -12,24 +12,32 @@
 	
 	@Inject extension PainterFactory
 	
-	override paintLayer(CompositeLayer compositeLayer, GraphicsContext gc) {
+	override paintLayer(CompositeLayer compositeLayer, PixelRectangle paintBounds, GraphicsContext gc) {
 		var yOffset = 0
-		for (row : compositeLayer.rows) {
-			var xOffset = 0
+		for (compositeRowPosition : 0 ..< compositeLayer.rows.size) {
+			val compositeRow = compositeLayer.rows.get(compositeRowPosition)
+			val isLastCompositeRow = compositeRowPosition == compositeLayer.rows.size - 1
 			
-			for (childLayer : row.childLayers) {
+			var xOffset = 0
+			for (compositeColumnPosition : 0 ..< compositeRow.childLayers.size) {
+				val childLayer = compositeRow.childLayers.get(compositeColumnPosition)
+				val isLastCompositeColumn = compositeColumnPosition == compositeRow.childLayers.size - 1
+				
 				gc.pushState
 				gc.translate(xOffset, yOffset)
-				if (childLayer.pixelWidth <= 0 || childLayer.pixelHeight <= 0)
-					println("oh no!")
-				gc.clipBounds = new PixelRectangle(0, 0, childLayer.pixelWidth, childLayer.pixelHeight)
-				childLayer.layerPainter.paintLayer(childLayer, gc)
+				
+				val pixelWidth = if (isLastCompositeColumn) paintBounds.x + paintBounds.width - xOffset else childLayer.pixelWidth
+				val pixelHeight = if (isLastCompositeRow) paintBounds.y + paintBounds.height - yOffset else childLayer.pixelHeight
+				val childPaintBounds = new PixelRectangle(0, 0, pixelWidth, pixelHeight)
+				
+				gc.clipBounds = childPaintBounds
+				childLayer.layerPainter.paintLayer(childLayer, childPaintBounds, gc)
 				gc.popState
 				
 				xOffset = xOffset + childLayer.pixelWidth
 			}
 			
-			yOffset = yOffset + row.childLayers.get(0).pixelHeight
+			yOffset = yOffset + compositeRow.childLayers.get(0).pixelHeight
 		}
 	}
 	
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportAxis.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportAxis.xtend
index 43453bc..6587455 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportAxis.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportAxis.xtend
@@ -51,10 +51,8 @@
 	}
 	
 	def void handleResize() {
-		println(visiblePixelRange)
-		
 		// If the visible pixel size is greater than the content size, move origin to fill as much content as possible.
-		val additionalSize = visiblePixelRange.end - underlyingAxis.pixelSize
+		val additionalSize = getVisiblePixelRange.end - underlyingAxis.pixelSize
 		if (additionalSize > 0)
 			pixelOrigin = Math::max(0, pixelOrigin - additionalSize)
 	}
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportLayer.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportLayer.xtend
index d521ff3..94c9670 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportLayer.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/viewport/ViewportLayer.xtend
@@ -1,6 +1,7 @@
 package org.eclipse.nebula.widgets.nattable.core.layer.impl.viewport
 
-import org.eclipse.nebula.widgets.nattable.core.geometry.PixelArea
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRangeImpl
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
 import org.eclipse.nebula.widgets.nattable.core.layer.Layer
 import org.eclipse.nebula.widgets.nattable.core.layer.impl.AbstractLayer
 
@@ -24,9 +25,9 @@
 		verticalAxis = new ViewportAxis(underlyingLayer.verticalAxis, [| fireEvent(new ScrollEvent) ])
 	}
 	
-	def void setPixelArea(PixelArea pixelArea) {
-		horizontalAxis.visiblePixelRange = pixelArea.horizontalPixelRange
-		verticalAxis.visiblePixelRange = pixelArea.verticalPixelRange
+	def void setVisiblePixelRectangle(PixelRectangle visiblePixelRectangle) {
+		horizontalAxis.visiblePixelRange = new PixelRangeImpl(visiblePixelRectangle.x, visiblePixelRectangle.width)
+		verticalAxis.visiblePixelRange = new PixelRangeImpl(visiblePixelRectangle.y, visiblePixelRectangle.height)
 	}
 	
 	def Layer getUnderlyingLayer() { underlyingLayer }
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTable.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTable.xtend
index d35ea7d..be221bd 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTable.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTable.xtend
@@ -2,6 +2,7 @@
 
 import javafx.beans.value.ObservableValue
 import javafx.scene.canvas.Canvas
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
 import org.eclipse.nebula.widgets.nattable.core.layer.Layer
 import org.eclipse.nebula.widgets.nattable.core.layer.impl.GridLineCellLayerPainter
 import org.eclipse.nebula.widgets.nattable.renderer.javafx.graphics.JavaFXGraphicsContext
@@ -27,7 +28,8 @@
 	}
 	
 	private def paintLayer() {
-		layer.layerPainter.paintLayer(layer, new JavaFXGraphicsContext(this.graphicsContext2D))
+		val paintBounds = new PixelRectangle(boundsInLocal.minX as int, boundsInLocal.minY as int, boundsInLocal.width as int, boundsInLocal.height as int)
+		layer.layerPainter.paintLayer(layer, paintBounds, new JavaFXGraphicsContext(this.graphicsContext2D))
 	}
 	
 	private def getLayerPainter(Layer layer) {
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTNatTable.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTNatTable.xtend
index 63afe90..ba6341c 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTNatTable.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTNatTable.xtend
@@ -1,6 +1,7 @@
 package org.eclipse.nebula.widgets.nattable.renderer.swt
 
 import com.google.inject.Injector
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
 import org.eclipse.nebula.widgets.nattable.core.graphics.PainterFactory
 import org.eclipse.nebula.widgets.nattable.core.layer.Layer
 import org.eclipse.nebula.widgets.nattable.renderer.swt.event.mode.Mode
@@ -15,7 +16,7 @@
 
 class SWTNatTable extends Canvas {
 
-	static val int DEFAULT_STYLE_OPTIONS = SWT::NO_BACKGROUND.bitwiseOr(SWT::NO_REDRAW_RESIZE).bitwiseOr(SWT::DOUBLE_BUFFERED)
+	static val int DEFAULT_STYLE_OPTIONS = SWT::NO_BACKGROUND.bitwiseOr(SWT::DOUBLE_BUFFERED).bitwiseOr(SWT::NO_REDRAW_RESIZE)
 	
 	extension Injector
 	extension PainterFactory
@@ -58,7 +59,8 @@
 	}
 	
 	private def paintLayer(GC gc) {
-		layer?.layerPainter?.paintLayer(layer, new SWTGraphicsContext(this, gc))
+		val paintBounds = new PixelRectangle(bounds.x, bounds.y, bounds.width, bounds.height)
+		layer?.layerPainter?.paintLayer(layer, paintBounds, new SWTGraphicsContext(this, gc))
 	}
 	
 }
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/geometry/SWTControlHorizontalPixelRange.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/geometry/SWTControlHorizontalPixelRange.xtend
deleted file mode 100644
index ed573e9..0000000
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/geometry/SWTControlHorizontalPixelRange.xtend
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.eclipse.nebula.widgets.nattable.renderer.swt.geometry
-
-import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRange
-import org.eclipse.swt.widgets.Control
-
-class SWTControlHorizontalPixelRange implements PixelRange {
-	
-	val Control control
-	
-	new(Control control) {
-		this.control = control
-	}
-	
-	override getStart() { control.bounds.x }
-	override getSize() { control.bounds.width }
-	
-	override toString() {
-		'''«class.name» start: «start», size: «size»'''
-	}
-	
-}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/geometry/SWTControlPixelArea.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/geometry/SWTControlPixelArea.xtend
deleted file mode 100644
index 060e742..0000000
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/geometry/SWTControlPixelArea.xtend
+++ /dev/null
@@ -1,22 +0,0 @@
-package org.eclipse.nebula.widgets.nattable.renderer.swt.geometry
-
-import org.eclipse.nebula.widgets.nattable.core.geometry.PixelArea
-import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRange
-import org.eclipse.swt.widgets.Control
-
-class SWTControlPixelArea implements PixelArea {
-	
-	val Control control
-	val PixelRange horizontalPixelRange
-	val PixelRange verticalPixelRange
-	
-	new(Control control) {
-		this.control = control
-		horizontalPixelRange = new SWTControlHorizontalPixelRange(control)
-		verticalPixelRange = new SWTControlVerticalPixelRange(control)
-	}
-	
-	override getHorizontalPixelRange() { horizontalPixelRange }
-	override getVerticalPixelRange() { verticalPixelRange }
-	
-}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/geometry/SWTControlVerticalPixelRange.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/geometry/SWTControlVerticalPixelRange.xtend
deleted file mode 100644
index 9edf53d..0000000
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/geometry/SWTControlVerticalPixelRange.xtend
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.eclipse.nebula.widgets.nattable.renderer.swt.geometry
-
-import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRange
-import org.eclipse.swt.widgets.Control
-
-class SWTControlVerticalPixelRange implements PixelRange {
-	
-	val Control control
-	
-	new(Control control) {
-		this.control = control
-	}
-	
-	override getStart() { control.bounds.y }
-	override getSize() { control.bounds.height }
-	
-	override toString() {
-		'''«class.name» start: «start», size: «size»'''
-	}
-	
-}
\ No newline at end of file
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/graphics/SWTGraphicsContext.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/graphics/SWTGraphicsContext.xtend
index a40626f..351c042 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/graphics/SWTGraphicsContext.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/graphics/SWTGraphicsContext.xtend
@@ -49,9 +49,8 @@
 		composite
 	}
 	
-	def getSWTGC() {
-		gc
-	}
+	def getXOffset() { xOffset }
+	def getYOffset() { yOffset }
 	
 	// GraphicsContext interface
 	
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/SWTViewportLayerPainter.xtend b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/SWTViewportLayerPainter.xtend
index fd6e8e1..f85ecb8 100644
--- a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/SWTViewportLayerPainter.xtend
+++ b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/SWTViewportLayerPainter.xtend
@@ -1,15 +1,16 @@
 package org.eclipse.nebula.widgets.nattable.renderer.swt.layer.viewport
 
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
 import org.eclipse.nebula.widgets.nattable.core.graphics.GraphicsContext
 import org.eclipse.nebula.widgets.nattable.core.layer.LayerPainter
 import org.eclipse.nebula.widgets.nattable.core.layer.impl.GridLineCellLayerPainter
 import org.eclipse.nebula.widgets.nattable.core.layer.impl.viewport.ViewportAxis
 import org.eclipse.nebula.widgets.nattable.core.layer.impl.viewport.ViewportLayer
-import org.eclipse.nebula.widgets.nattable.renderer.swt.geometry.SWTControlPixelArea
 import org.eclipse.nebula.widgets.nattable.renderer.swt.graphics.SWTGraphicsContext
 import org.eclipse.swt.SWT
 import org.eclipse.swt.graphics.Rectangle
 import org.eclipse.swt.widgets.Canvas
+import org.eclipse.swt.widgets.Display
 
 class SWTViewportLayerPainter implements LayerPainter<ViewportLayer> {
 	
@@ -17,21 +18,18 @@
 	
 	Canvas viewportCanvas
 	
-	override paintLayer(ViewportLayer viewportLayer, GraphicsContext gc) {
+	override paintLayer(ViewportLayer viewportLayer, PixelRectangle paintBounds, GraphicsContext gc) {
 		val swtGC = gc as SWTGraphicsContext
 		
+		viewportLayer.visiblePixelRectangle = paintBounds
+		
 		if (viewportCanvas == null) {
 			viewportCanvas = new Canvas(swtGC.SWTComposite, SWT::H_SCROLL.bitwiseOr(SWT::V_SCROLL))
-			
-			viewportLayer.pixelArea = new SWTControlPixelArea(viewportCanvas)
-			
-			// Event listener
-			
-			viewportLayer.addEventListener([ event | viewportCanvas.redraw ])
+			viewportCanvas.background = Display::getDefault.getSystemColor(SWT::COLOR_RED)
 			
 			// Paint listener
 			
-			viewportCanvas.addPaintListener([ event | defaultPainter.paintLayer(viewportLayer, new SWTGraphicsContext(viewportCanvas, event.gc)) ])
+			viewportCanvas.addPaintListener([ event | defaultPainter.paintLayer(viewportLayer, paintBounds, new SWTGraphicsContext(viewportCanvas, event.gc)) ])
 			
 			// ScrollBar handlers
 			
@@ -56,8 +54,10 @@
 			])
 		}
 		
-		val clipBounds = swtGC.SWTGC.clipping
-		viewportCanvas.bounds = new Rectangle(clipBounds.x, clipBounds.y, clipBounds.width, clipBounds.height)
+		// Resize viewport canvas
+		
+		val clipBounds = gc.clipBounds
+		viewportCanvas.bounds = new Rectangle(swtGC.getXOffset + clipBounds.x, swtGC.getYOffset + clipBounds.y, clipBounds.width, clipBounds.height)
 	}
 	
 }
diff --git a/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/geometry/packageinfo b/NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/packageinfo
similarity index 100%
rename from NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/geometry/packageinfo
rename to NatTable/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/packageinfo