|
From: <ls...@us...> - 2008-07-19 13:24:56
|
Revision: 4324
http://jnode.svn.sourceforge.net/jnode/?rev=4324&view=rev
Author: lsantha
Date: 2008-07-19 13:24:43 +0000 (Sat, 19 Jul 2008)
Log Message:
-----------
Fixed image scrolling and problems with the visibility of window content.
Modified Paths:
--------------
trunk/all/conf/openjdk-annotations.properties
trunk/gui/src/awt/org/jnode/awt/swingpeers/SwingComponentPeer.java
trunk/gui/src/awt/org/jnode/awt/util/BasicGraphics.java
trunk/gui/src/awt/org/jnode/awt/util/BasicSurfaceGraphics.java
trunk/gui/src/awt/org/jnode/awt/util/SurfaceGraphics2D.java
Modified: trunk/all/conf/openjdk-annotations.properties
===================================================================
--- trunk/all/conf/openjdk-annotations.properties 2008-07-19 02:04:07 UTC (rev 4323)
+++ trunk/all/conf/openjdk-annotations.properties 2008-07-19 13:24:43 UTC (rev 4324)
@@ -8,3 +8,4 @@
java/lang/Throwable.class=MagicPermission
java/util/Currency.class=SharedStatics
sun/misc/SharedSecrets.class=SharedStatics
+java/awt/Toolkit.class=SharedStatics
Modified: trunk/gui/src/awt/org/jnode/awt/swingpeers/SwingComponentPeer.java
===================================================================
--- trunk/gui/src/awt/org/jnode/awt/swingpeers/SwingComponentPeer.java 2008-07-19 02:04:07 UTC (rev 4323)
+++ trunk/gui/src/awt/org/jnode/awt/swingpeers/SwingComponentPeer.java 2008-07-19 13:24:43 UTC (rev 4324)
@@ -221,10 +221,11 @@
* Response on paint events.
*/
private void processPaintEvent(PaintEvent event) {
+ if(!targetComponent.isVisible() || !peerComponent.isVisible())
+ return;
+
final Graphics g = peerComponent.getGraphics();
if (g != null) {
- //Point p = component.getLocationOnScreen();
- //g.translate(p.x, p.y);
if (event.getID() == PaintEvent.PAINT) {
if (!(targetComponent instanceof java.awt.Window))
peerComponent.paint(g);
@@ -234,7 +235,6 @@
peerComponent.update(g);
targetComponent.update(g);
}
- //g.translate(-p.x, -p.y);
g.dispose();
}
}
Modified: trunk/gui/src/awt/org/jnode/awt/util/BasicGraphics.java
===================================================================
--- trunk/gui/src/awt/org/jnode/awt/util/BasicGraphics.java 2008-07-19 02:04:07 UTC (rev 4323)
+++ trunk/gui/src/awt/org/jnode/awt/util/BasicGraphics.java 2008-07-19 13:24:43 UTC (rev 4324)
@@ -212,10 +212,6 @@
this.clip = clip.getBounds();
_transform(this.clip);
}
- if (this.clip.width == 0 && this.clip.height == 0) {
- org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics: zero clip " + clip + "\n");
- org.jnode.vm.Unsafe.debugStackTrace();
- }
}
/**
@@ -237,10 +233,6 @@
public void setClip(int x, int y, int width, int height) {
this.clip = new Rectangle(x, y, width, height);
_transform(this.clip);
- if (clip.width == 0 && clip.height == 0) {
- org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics: zero clip " + clip + "\n");
- org.jnode.vm.Unsafe.debugStackTrace();
- }
}
/**
Modified: trunk/gui/src/awt/org/jnode/awt/util/BasicSurfaceGraphics.java
===================================================================
--- trunk/gui/src/awt/org/jnode/awt/util/BasicSurfaceGraphics.java 2008-07-19 02:04:07 UTC (rev 4323)
+++ trunk/gui/src/awt/org/jnode/awt/util/BasicSurfaceGraphics.java 2008-07-19 13:24:43 UTC (rev 4324)
@@ -383,11 +383,14 @@
Raster rast = getCompatibleRaster(img);
Rectangle r = new Rectangle(x, y, rast.getWidth(), rast.getHeight());
_transform(r);
+ final int tx = r.x, ty = r.y;
if (clip != null)
r = clip.intersection(r);
- surface.drawCompatibleRaster(rast, 0, 0, r.x, r.y, r.width, r.height, bgcolor);
- surface.update(r.x, r.y, r.width + 2, r.height + 2);
+ if(!r.isEmpty()){
+ surface.drawCompatibleRaster(rast, r.x - tx, r.y - ty, r.x, r.y, r.width, r.height, bgcolor);
+ surface.update(r.x, r.y, r.width, r.height);
+ }
return true;
} catch (InterruptedException ie) {
return false;
@@ -433,11 +436,14 @@
Raster rast = getCompatibleRaster(img);
Rectangle r = new Rectangle(x, y, rast.getWidth(), rast.getHeight());
_transform(r);
+ final int tx = r.x, ty = r.y;
if (clip != null)
r = clip.intersection(r);
- surface.drawCompatibleRaster(rast, 0, 0, r.x, r.y, r.width, r.height, null);
- surface.update(r.x, r.y, r.width + 2, r.height + 2);
+ if(!r.isEmpty()){
+ surface.drawCompatibleRaster(rast, r.x - tx, r.y - ty, r.x, r.y, r.width, r.height, null);
+ surface.update(r.x, r.y, r.width, r.height);
+ }
return true;
} catch (InterruptedException ie) {
return false;
@@ -966,7 +972,9 @@
// Convert it to a raster
final PixelGrabber grabber =
new PixelGrabber(image, 0, 0, image.getWidth(null), image.getHeight(null), true);
- if (grabber.grabPixels()) {
+ org.jnode.vm.Unsafe.debug("BasicSurfaceGraphics.getCompatibleRaster() " + image + ", " +
+ image.getWidth(null) + ", " + image.getHeight(null) + "\n");
+ if (grabber.grabPixels(10000)) {
final int w = grabber.getWidth();
final int h = grabber.getHeight();
final WritableRaster raster = dstModel.createCompatibleWritableRaster(w, h);
@@ -982,6 +990,7 @@
}
return raster;
} else {
+ org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage()-1\n");
throw new IllegalArgumentException("Cannot grab pixels");
}
}
Modified: trunk/gui/src/awt/org/jnode/awt/util/SurfaceGraphics2D.java
===================================================================
--- trunk/gui/src/awt/org/jnode/awt/util/SurfaceGraphics2D.java 2008-07-19 02:04:07 UTC (rev 4323)
+++ trunk/gui/src/awt/org/jnode/awt/util/SurfaceGraphics2D.java 2008-07-19 13:24:43 UTC (rev 4324)
@@ -43,10 +43,10 @@
*/
public abstract class SurfaceGraphics2D extends Graphics2D {
private static final BasicStroke DEFAULT_STROKE = new BasicStroke();
- private static final HashMap DEFAULT_HINTS;
+ private static final HashMap<RenderingHints.Key, ?> DEFAULT_HINTS;
static {
- HashMap hints = new HashMap();
+ HashMap<RenderingHints.Key, Object> hints = new HashMap<RenderingHints.Key, Object>();
hints.put(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT);
hints.put(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_DEFAULT);
DEFAULT_HINTS = hints;
@@ -206,7 +206,7 @@
*/
public void drawImage(BufferedImage img, BufferedImageOp op, int x, int y) {
//todo implement it
- org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage() not implemented\n");
+ org.jnode.vm.Unsafe.debug("SurfaceGraphics2D.drawImage() - 0 not implemented\n");
}
/**
@@ -238,7 +238,7 @@
*/
public boolean drawImage(Image img, AffineTransform xform, ImageObserver obs) {
//todo implement it
- org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage2() not implemented\n");
+ org.jnode.vm.Unsafe.debug("SurfaceGraphics2D.drawImage() - 00 not implemented\n");
return false;
}
@@ -1008,28 +1008,34 @@
}
public boolean drawImage(Image img, int x, int y, ImageObserver observer) {
+// org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage()-1\n");
return simpleGraphics.drawImage(img, x, y, observer);
}
public boolean drawImage(Image img, int x, int y, int width, int height, ImageObserver observer) {
+// org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage()-2\n");
return simpleGraphics.drawImage(img, x, y, width, height, observer);
}
public boolean drawImage(Image img, int x, int y, Color bgcolor, ImageObserver observer) {
+// org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage()-3\n");
return simpleGraphics.drawImage(img, x, y, bgcolor, observer);
}
public boolean drawImage(Image img, int x, int y, int width, int height, Color bgcolor, ImageObserver observer) {
+// org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage()-4\n");
return simpleGraphics.drawImage(img, x, y, width, height, bgcolor, observer);
}
public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2,
ImageObserver observer) {
+// org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage()-5\n");
return simpleGraphics.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer);
}
public boolean drawImage(Image img, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2,
Color bgcolor, ImageObserver observer) {
+// org.jnode.vm.Unsafe.debug("SimpleSurfaceGraphics2D.drawImage()-6\n");
return simpleGraphics.drawImage(img, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, bgcolor, observer);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|