From 8087d6522621f8484694fef220aad441ac24620a Mon Sep 17 00:00:00 2001 From: Willem Duminy Date: Sun, 2 Dec 2012 19:09:53 +0200 Subject: [PATCH] NEW - bug 160904: FigureCanvas Transparency https://bugs.eclipse.org/bugs/show_bug.cgi?id=160904 --- .../src/org/eclipse/draw2d/test/GraphicsClipping.java | 15 +++++++++++++++ .../src/org/eclipse/draw2d/SWTGraphics.java | 1 + 2 files changed, 16 insertions(+) diff --git a/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/GraphicsClipping.java b/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/GraphicsClipping.java index 9e96834..db23d98 100644 --- a/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/GraphicsClipping.java +++ b/org.eclipse.draw2d.test/src/org/eclipse/draw2d/test/GraphicsClipping.java @@ -86,6 +86,21 @@ public class GraphicsClipping extends TestCase { graphics = new SWTGraphics(gc); } + public void testGCClipAfterPop() { + Rectangle fullRect = new Rectangle(0, 0, 800, 600); + Rectangle bigRect = new Rectangle(0, 0, 200, 200); + assertEquals(800, graphics.getClip(fullRect.getCopy()).width); + assertEquals(800, gc.getClipping().width); + graphics.pushState(); + graphics.clipRect(bigRect); + graphics.fillRectangle(10, 10, 100, 100); + assertEquals(200, graphics.getClip(fullRect.getCopy()).width); + assertEquals(200, gc.getClipping().width); + graphics.popState(); + assertEquals(800, graphics.getClip(fullRect.getCopy()).width); + assertEquals(800, gc.getClipping().width); + } + protected void tearDown() throws Exception { graphics.dispose(); gc.dispose(); diff --git a/org.eclipse.draw2d/src/org/eclipse/draw2d/SWTGraphics.java b/org.eclipse.draw2d/src/org/eclipse/draw2d/SWTGraphics.java index dc08e09..c51d67f 100644 --- a/org.eclipse.draw2d/src/org/eclipse/draw2d/SWTGraphics.java +++ b/org.eclipse.draw2d/src/org/eclipse/draw2d/SWTGraphics.java @@ -949,6 +949,7 @@ public class SWTGraphics extends Graphics { translateX = currentState.dx = s.dx; translateY = currentState.dy = s.dy; + checkGC(); } /** -- 1.8.0.msysgit.0