-> paintArea
diff --git a/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainterTest.xtend b/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainterTest.xtend
index 0e3614a..677ae50 100644
--- a/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainterTest.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainterTest.xtend
@@ -49,28 +49,28 @@
def void paintEverything() {
val clipBounds = testLayer.pixelBounds
when(testGC.clipBounds).thenReturn(clipBounds)
- layerPainter.paintLayer(testLayer, testLayer.pixelBounds, testGC)
+ layerPainter.paintLayer(testLayer, testLayer.pixelArea, testGC)
verify(testLayer, 12.times).getCell(anyInt, anyInt)
}
@Test
def void clipBoundsLargerThanLayer() {
when(testGC.clipBounds).thenReturn(new PixelRectangle(0, 0, 500, 100))
- layerPainter.paintLayer(testLayer, testLayer.pixelBounds, testGC)
+ layerPainter.paintLayer(testLayer, testLayer.pixelArea, testGC)
verify(testLayer, 12.times).getCell(anyInt, anyInt)
}
@Test
def void paintSome_aligned() {
when(testGC.clipBounds).thenReturn(new PixelRectangle(100, 20, 200, 20))
- layerPainter.paintLayer(testLayer, testLayer.pixelBounds, testGC)
+ layerPainter.paintLayer(testLayer, testLayer.pixelArea, testGC)
verify(testLayer, 2.times).getCell(anyInt, anyInt)
}
@Test
def void paintSome_unaligned() {
when(testGC.clipBounds).thenReturn(new PixelRectangle(50, 22, 200, 20))
- layerPainter.paintLayer(testLayer, testLayer.pixelBounds, testGC)
+ layerPainter.paintLayer(testLayer, testLayer.pixelArea, testGC)
verify(testLayer, 6.times).getCell(anyInt, anyInt)
}
diff --git a/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/GridLineCellLayerPainterTest.xtend b/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/GridLineCellLayerPainterTest.xtend
index 3448789..079b64f 100644
--- a/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/GridLineCellLayerPainterTest.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core.test/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/GridLineCellLayerPainterTest.xtend
@@ -42,28 +42,28 @@
def void paintEverything() {
val clipBounds = testLayer.pixelBounds
when(testGC.clipBounds).thenReturn(clipBounds)
- layerPainter.paintLayer(testLayer, testLayer.pixelBounds, testGC)
+ layerPainter.paintLayer(testLayer, testLayer.pixelArea, testGC)
verify(testGC, 7.times).drawLine(anyInt, anyInt, anyInt, anyInt)
}
@Test
def void clipBoundsLargerThanLayer() {
when(testGC.clipBounds).thenReturn(new PixelRectangle(0, 0, 500, 100))
- layerPainter.paintLayer(testLayer, testLayer.pixelBounds, testGC)
+ layerPainter.paintLayer(testLayer, testLayer.pixelArea, testGC)
verify(testGC, 7.times).drawLine(anyInt, anyInt, anyInt, anyInt)
}
@Test
def void paintSome_aligned() {
when(testGC.clipBounds).thenReturn(new PixelRectangle(100, 20, 200, 20))
- layerPainter.paintLayer(testLayer, testLayer.pixelBounds, testGC)
+ layerPainter.paintLayer(testLayer, testLayer.pixelArea, testGC)
verify(testGC, 3.times).drawLine(anyInt, anyInt, anyInt, anyInt)
}
@Test
def void paintSome_unaligned() {
when(testGC.clipBounds).thenReturn(new PixelRectangle(50, 22, 200, 20))
- layerPainter.paintLayer(testLayer, testLayer.pixelBounds, testGC)
+ layerPainter.paintLayer(testLayer, testLayer.pixelArea, testGC)
verify(testGC, 3.times).drawLine(anyInt, anyInt, anyInt, anyInt)
}
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerInvariants.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerInvariants.xtend
index b0af94e..d7db4d6 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerInvariants.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerInvariants.xtend
@@ -1,8 +1,10 @@
package org.eclipse.nebula.widgets.nattable.core.layer
-import static extension org.eclipse.nebula.widgets.nattable.core.layer.axis.AxisInvariants.*
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelArea
import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
+import static extension org.eclipse.nebula.widgets.nattable.core.layer.axis.AxisInvariants.*
+
/**
* A set of useful utility functions that calculate invariants that must hold for any Layer.
*/
@@ -79,4 +81,11 @@
)
}
+ static def PixelArea getPixelArea(Layer layer) {
+ new PixelArea(
+ layer.pixelWidth,
+ layer.pixelHeight
+ )
+ }
+
}
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerPainter.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerPainter.xtend
index 076523d..c2d848e 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerPainter.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/LayerPainter.xtend
@@ -1,15 +1,20 @@
package org.eclipse.nebula.widgets.nattable.core.layer
-import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelArea
import org.eclipse.nebula.widgets.nattable.core.graphics.GraphicsContext
interface LayerPainter<T extends Layer> {
/**
- * @param layer The layer to render.
- * @param layerPaintBounds The rectangular pixel area to paint into. The coordinates of this rectangle are relative to this layer itself.
- * @param gc The graphics context to render into.
+ * Paints the specified layer.
+ *
+ * @param layer The layer to paint.
+ * @param layerPaintArea The width and height of the rectangular pixel area to be painted into.
+ * This represents the available area to be painted into, and may be different from the actual layer's area.
+ * It also may be different from the clipping region of the gc.
+ * @param gc The graphics context to paint into.
+ * The coordinates of the gc should be offset (translated) to the local coordinate system of the specified layer before being passed in.
*/
- def void paintLayer(T layer, PixelRectangle layerPaintBounds, GraphicsContext gc)
+ def void paintLayer(T layer, PixelArea layerPaintArea, GraphicsContext gc)
}
\ No newline at end of file
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellPainter.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellPainter.xtend
index 706caa5..dc83682 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellPainter.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/CellPainter.xtend
@@ -1,15 +1,20 @@
package org.eclipse.nebula.widgets.nattable.core.layer.cell
-import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelArea
import org.eclipse.nebula.widgets.nattable.core.graphics.GraphicsContext
interface CellPainter {
/**
+ * Paints the specified cell.
+ *
* @param cell The cell to paint.
- * @param cellPaintBounds The rectangular pixel area to paint into. The coordinates of this rectangle are relative to this cell itself.
+ * @param cellPaintArea The width and height of the rectangular pixel area to be painted into.
+ * This represents the available area to be painted into, and may be different from the actual cell's area.
+ * It also may be different from the clipping region of the gc.
* @param gc The graphics context to paint into.
+ * The coordinates of the gc should be offset (translated) to the local coordinate system of the specified cell before being passed in.
*/
- def void paintCell(Cell cell, PixelRectangle cellPaintBounds, GraphicsContext gc)
+ def void paintCell(Cell cell, PixelArea cellPaintArea, GraphicsContext gc)
}
\ No newline at end of file
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/impl/TextCellPainter.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/impl/TextCellPainter.xtend
index f8ae497..ef52265 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/impl/TextCellPainter.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/cell/impl/TextCellPainter.xtend
@@ -1,5 +1,6 @@
package org.eclipse.nebula.widgets.nattable.core.layer.cell.impl
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelArea
import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
import org.eclipse.nebula.widgets.nattable.core.graphics.Color
import org.eclipse.nebula.widgets.nattable.core.graphics.GraphicsContext
@@ -8,14 +9,14 @@
class TextCellPainter implements CellPainter {
- override paintCell(Cell cell, PixelRectangle cellPaintBounds, GraphicsContext gc) {
+ override paintCell(Cell cell, PixelArea cellPaintArea, GraphicsContext gc) {
gc.backgroundColor = new Color(255, 0, 0)
- gc.fillRectangle(new PixelRectangle(1, 1, cellPaintBounds.width - 2, cellPaintBounds.height - 2))
+ gc.fillRectangle(new PixelRectangle(1, 1, cellPaintArea.width - 2, cellPaintArea.height - 2))
val text = cell.dataValue.toString
- val centerX = cellPaintBounds.width / 2
- val centerY = cellPaintBounds.height / 2
+ val centerX = cellPaintArea.width / 2
+ val centerY = cellPaintArea.height / 2
val textWidth = gc.calculateTextWidth(text)
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainter.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainter.xtend
index 38a0de7..8fc8f60 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainter.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/CellLayerPainter.xtend
@@ -1,17 +1,18 @@
package org.eclipse.nebula.widgets.nattable.core.layer.impl
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelArea
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
import org.eclipse.nebula.widgets.nattable.core.layer.cell.Cell
+import org.eclipse.nebula.widgets.nattable.core.layer.cell.impl.TextCellPainter
import static java.lang.Math.*
import static extension org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangleInvariants.*
import static extension org.eclipse.nebula.widgets.nattable.core.layer.LayerInvariants.*
import static extension org.eclipse.nebula.widgets.nattable.core.layer.cell.CellInvariants.*
-import org.eclipse.nebula.widgets.nattable.core.layer.cell.impl.TextCellPainter
class CellLayerPainter implements LayerPainter<Layer> {
@@ -19,7 +20,8 @@
// LayerPainter interface
- override paintLayer(Layer layer, PixelRectangle layerPaintBounds, GraphicsContext gc) {
+ override paintLayer(Layer layer, PixelArea layerPaintArea, GraphicsContext gc) {
+ val layerPixelBounds = new PixelRectangle(0, 0, layerPaintArea.width, layerPaintArea.height)
val clipBounds = gc.clipBounds
val fromColumnPosition = max(layer.getColumnPositionOfXPixel(clipBounds.x), 0)
@@ -36,10 +38,9 @@
gc.pushState
val cellPixelBounds = cell.adjustedPixelBounds
- gc.clipBounds = cellPixelBounds.intersect(new PixelRectangle(0, 0, layerPaintBounds.width, layerPaintBounds.height))
+ gc.clipBounds = cellPixelBounds.intersect(layerPixelBounds)
gc.translate(cellPixelBounds.x, cellPixelBounds.y)
- val localCellPaintBounds = new PixelRectangle(0, 0, cellPixelBounds.width, cellPixelBounds.height)
- cellPainter.paintCell(cell, localCellPaintBounds, gc)
+ cellPainter.paintCell(cell, new PixelArea(cellPixelBounds.width, cellPixelBounds.height), gc)
gc.popState
}
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/GridLineCellLayerPainter.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/GridLineCellLayerPainter.xtend
index 88f868a..784fb9a 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/GridLineCellLayerPainter.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/GridLineCellLayerPainter.xtend
@@ -1,5 +1,6 @@
package org.eclipse.nebula.widgets.nattable.core.layer.impl
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelArea
import org.eclipse.nebula.widgets.nattable.core.geometry.PixelRectangle
import org.eclipse.nebula.widgets.nattable.core.graphics.Color
import org.eclipse.nebula.widgets.nattable.core.graphics.GraphicsContext
@@ -14,9 +15,9 @@
// LayerPainter interface
- override paintLayer(Layer layer, PixelRectangle layerPaintBounds, GraphicsContext gc) {
+ override paintLayer(Layer layer, PixelArea layerPaintArea, GraphicsContext gc) {
// Draw cells
- super.paintLayer(layer, layerPaintBounds, gc)
+ super.paintLayer(layer, layerPaintArea, gc)
// Draw grid lines
drawGridLines(layer, gc)
diff --git a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/composite/CompositeLayerPainter.xtend b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/composite/CompositeLayerPainter.xtend
index fef68da..8fdc450 100644
--- a/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/composite/CompositeLayerPainter.xtend
+++ b/org.eclipse.nebula.widgets.nattable.core/src/org/eclipse/nebula/widgets/nattable/core/layer/impl/composite/CompositeLayerPainter.xtend
@@ -1,6 +1,7 @@
package org.eclipse.nebula.widgets.nattable.core.layer.impl.composite
import javax.inject.Inject
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelArea
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.graphics.PainterFactory
@@ -12,7 +13,7 @@
@Inject extension PainterFactory
- override paintLayer(CompositeLayer compositeLayer, PixelRectangle layerPaintBounds, GraphicsContext gc) {
+ override paintLayer(CompositeLayer compositeLayer, PixelArea layerPaintArea, GraphicsContext gc) {
var yOffset = 0
for (compositeRowPosition : 0 ..< compositeLayer.rows.size) {
val compositeRow = compositeLayer.rows.get(compositeRowPosition)
@@ -26,12 +27,12 @@
gc.pushState
gc.translate(xOffset, yOffset)
- val pixelWidth = if (isLastCompositeColumn) layerPaintBounds.x + layerPaintBounds.width - xOffset else childLayer.pixelWidth
- val pixelHeight = if (isLastCompositeRow) layerPaintBounds.y + layerPaintBounds.height - yOffset else childLayer.pixelHeight
- val childLayerPaintBounds = new PixelRectangle(0, 0, pixelWidth, pixelHeight)
+ val pixelWidth = if (isLastCompositeColumn) layerPaintArea.width - xOffset else childLayer.pixelWidth
+ val pixelHeight = if (isLastCompositeRow) layerPaintArea.height - yOffset else childLayer.pixelHeight
+ val childLayerPaintArea = new PixelArea(pixelWidth, pixelHeight)
- gc.clipBounds = childLayerPaintBounds
- childLayer.layerPainter.paintLayer(childLayer, childLayerPaintBounds, gc)
+ gc.clipBounds = new PixelRectangle(0, 0, pixelWidth, pixelHeight)
+ childLayer.layerPainter.paintLayer(childLayer, childLayerPaintArea, gc)
gc.popState
xOffset = xOffset + childLayer.pixelWidth
diff --git a/org.eclipse.nebula.widgets.nattable.renderer.javafx/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTable.xtend b/org.eclipse.nebula.widgets.nattable.renderer.javafx/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTable.xtend
index be221bd..33ff2a2 100644
--- a/org.eclipse.nebula.widgets.nattable.renderer.javafx/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTable.xtend
+++ b/org.eclipse.nebula.widgets.nattable.renderer.javafx/src/org/eclipse/nebula/widgets/nattable/renderer/javafx/JavaFXNatTable.xtend
@@ -2,7 +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.geometry.PixelArea
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
@@ -28,8 +28,8 @@
}
private def paintLayer() {
- 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))
+ val paintArea = new PixelArea(boundsInLocal.width as int, boundsInLocal.height as int)
+ layer.layerPainter.paintLayer(layer, paintArea, new JavaFXGraphicsContext(this.graphicsContext2D))
}
private def getLayerPainter(Layer layer) {
diff --git a/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTNatTable.xtend b/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTNatTable.xtend
index ba6341c..c9aab90 100644
--- a/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTNatTable.xtend
+++ b/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/SWTNatTable.xtend
@@ -1,7 +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.geometry.PixelArea
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
@@ -59,8 +59,7 @@
}
private def paintLayer(GC gc) {
- val paintBounds = new PixelRectangle(bounds.x, bounds.y, bounds.width, bounds.height)
- layer?.layerPainter?.paintLayer(layer, paintBounds, new SWTGraphicsContext(this, gc))
+ layer?.layerPainter?.paintLayer(layer, new PixelArea(bounds.width, bounds.height), new SWTGraphicsContext(this, gc))
}
}
diff --git a/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/SWTViewportLayerPainter.xtend b/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/SWTViewportLayerPainter.xtend
index 0ea814b..aae940c 100644
--- a/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/SWTViewportLayerPainter.xtend
+++ b/org.eclipse.nebula.widgets.nattable.renderer.swt/src/org/eclipse/nebula/widgets/nattable/renderer/swt/layer/viewport/SWTViewportLayerPainter.xtend
@@ -1,5 +1,6 @@
package org.eclipse.nebula.widgets.nattable.renderer.swt.layer.viewport
+import org.eclipse.nebula.widgets.nattable.core.geometry.PixelArea
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
@@ -17,10 +18,10 @@
Canvas viewportCanvas
- override paintLayer(ViewportLayer viewportLayer, PixelRectangle paintBounds, GraphicsContext gc) {
+ override paintLayer(ViewportLayer viewportLayer, PixelArea layerPaintArea, GraphicsContext gc) {
val swtGC = gc as SWTGraphicsContext
- viewportLayer.visiblePixelRectangle = paintBounds
+ viewportLayer.visiblePixelRectangle = new PixelRectangle(0, 0, layerPaintArea.width, layerPaintArea.height)
if (viewportCanvas == null) {
viewportCanvas = new Canvas(swtGC.SWTComposite, SWT::H_SCROLL.bitwiseOr(SWT::V_SCROLL))
@@ -29,7 +30,7 @@
viewportCanvas.addPaintListener([ event |
val swtBounds = viewportCanvas.bounds
- defaultPainter.paintLayer(viewportLayer, new PixelRectangle(swtBounds.x, swtBounds.y, swtBounds.width, swtBounds.height), new SWTGraphicsContext(viewportCanvas, event.gc))
+ defaultPainter.paintLayer(viewportLayer, new PixelArea(swtBounds.width, swtBounds.height), new SWTGraphicsContext(viewportCanvas, event.gc))
])
// ScrollBar handlers