--- Begin Message ---
Fabien Renaud wrote:

Kaffe CVS wrote:

PatchSet 4902 Date: 2004/07/07 12:58:43
Author: dalibor
Branch: HEAD
Tag: (none) Log:
AWT clipping and mouse event handling fixes

2004-07-07  Jim Huang <[EMAIL PROTECTED]>

       * libraries/javalib/java/awt/Graphics.java:
       * libraries/javalib/java/awt/Image.java:
       * libraries/javalib/java/awt/NativeGraphics.java:
       * libraries/javalib/java/awt/PSGraphics.java:
       Adapt the AWT clipping fixing patch from
       Benja Fallenstein <[EMAIL PROTECTED]>.
       Update the copyright notice.

       * libraries/javalib/java/awt/event/MouseEvent.java
       (MouseEvent)
       (getButton):
       Adapt the Java 1.4 features to java.awt.event.MouseEvent
       patch from Benja Fallenstein <[EMAIL PROTECTED]>.
       This only affects MouseEvent via making the old
       constructor do the work of figuring out which button
       it is from the modifiers list.
       Update the copyright notice.

Members: ChangeLog:1.2468->1.2469 libraries/javalib/java/awt/Graphics.java:1.7->1.8 libraries/javalib/java/awt/Image.java:1.17->1.18 libraries/javalib/java/awt/NativeGraphics.java:1.11->1.12 libraries/javalib/java/awt/PSGraphics.java:1.4->1.5 libraries/javalib/java/awt/event/MouseEvent.java:1.9->1.10
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.2468 kaffe/ChangeLog:1.2469
--- kaffe/ChangeLog:1.2468 Wed Jul 7 08:46:38 2004
+++ kaffe/ChangeLog Wed Jul 7 12:58:43 2004
@@ -1,3 +1,23 @@
+2004-07-07 Jim Huang <[EMAIL PROTECTED]>
+
+ * libraries/javalib/java/awt/Graphics.java:
+ * libraries/javalib/java/awt/Image.java:
+ * libraries/javalib/java/awt/NativeGraphics.java:
+ * libraries/javalib/java/awt/PSGraphics.java:
+ Adapt the AWT clipping fixing patch from + Benja Fallenstein <[EMAIL PROTECTED]>.
+ Update the copyright notice.
+ + * libraries/javalib/java/awt/event/MouseEvent.java
+ (MouseEvent)
+ (getButton):
+ Adapt the Java 1.4 features to java.awt.event.MouseEvent
+ patch from Benja Fallenstein <[EMAIL PROTECTED]>.
+ This only affects MouseEvent via making the old + constructor do the work of figuring out which button + it is from the modifiers list.
+ Update the copyright notice.
+ 2004-07-07 Guilhem Lavaux <[EMAIL PROTECTED]>


* WHATNEW: Added some news line.
Index: kaffe/libraries/javalib/java/awt/Graphics.java
diff -u kaffe/libraries/javalib/java/awt/Graphics.java:1.7 kaffe/libraries/javalib/java/awt/Graphics.java:1.8
--- kaffe/libraries/javalib/java/awt/Graphics.java:1.7 Wed Feb 10 21:34:31 1999
+++ kaffe/libraries/javalib/java/awt/Graphics.java Wed Jul 7 12:58:45 2004
@@ -1,8 +1,4 @@
-package java.awt;
-
-import java.awt.image.ImageObserver;
-
-/**
+/*
* Graphics - abstract draw object
*
* Note that this had to be changed into an abstract class with *some*
@@ -12,11 +8,19 @@
* Copyright (c) 1998
* Transvirtual Technologies, Inc. All rights reserved.
*
+ * Copyright (c) 2004
+ * The Kaffe.org's developers. See ChangeLog for details.
+ *
* See the file "license.terms" for information on usage and redistribution * of this file. *
* @author P.C.Mehlitz
*/
+
+package java.awt;
+
+import java.awt.image.ImageObserver;
+
abstract public class Graphics
{
protected Graphics () {
@@ -171,7 +175,12 @@


abstract public Shape getClip ();

-abstract public Rectangle getClipBounds();
+public Rectangle getClipBounds() {
+ // Another return object which is modified by Swing, causing more garbage
+ return (getClipBounds(new Rectangle()));
+}
+
+abstract public Rectangle getClipBounds(Rectangle rect);


int getClipHeight () {
// this is only here to be resolved in concrete subclasses
Index: kaffe/libraries/javalib/java/awt/Image.java
diff -u kaffe/libraries/javalib/java/awt/Image.java:1.17 kaffe/libraries/javalib/java/awt/Image.java:1.18
--- kaffe/libraries/javalib/java/awt/Image.java:1.17 Wed Jun 9 17:40:16 2004
+++ kaffe/libraries/javalib/java/awt/Image.java Wed Jul 7 12:58:45 2004
@@ -1,3 +1,16 @@
+/*
+ * Copyright (c) 1998
+ * Transvirtual Technologies, Inc. All rights reserved.
+ *
+ * Copyright (c) 2004
+ * The Kaffe.org's developers. See ChangeLog for details.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file.
+ *
+ * @author P.C.Mehlitz
+ */
+
package java.awt;


import java.awt.image.ImageObserver;
@@ -12,15 +25,6 @@
import kaffe.util.Ptr;
import kaffe.util.VectorSnapshot;

-/**
- * Copyright (c) 1998
- * Transvirtual Technologies, Inc. All rights reserved.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file.
- *
- * @author P.C.Mehlitz
- */
public class Image
{
Ptr nativeData;
@@ -268,7 +272,6 @@
}


public synchronized int getWidth ( ImageObserver observer ) {
-    System.err.println("getWidth()="+width + " producer="+producer);
    if ( (flags & ImageObserver.WIDTH) != 0 ) {
        return (width);
    }
@@ -353,8 +356,6 @@
    ImageObserver obs;

    this.flags |= flags;
-
-    System.err.println("producer="+producer + " flags="+this.flags);

if (observers == null) {
return;
Index: kaffe/libraries/javalib/java/awt/NativeGraphics.java
diff -u kaffe/libraries/javalib/java/awt/NativeGraphics.java:1.11 kaffe/libraries/javalib/java/awt/NativeGraphics.java:1.12
--- kaffe/libraries/javalib/java/awt/NativeGraphics.java:1.11 Mon Mar 22 11:24:34 2004
+++ kaffe/libraries/javalib/java/awt/NativeGraphics.java Wed Jul 7 12:58:46 2004
@@ -1,10 +1,4 @@
-package java.awt;
-
-import java.awt.image.ImageObserver;
-
-import kaffe.util.Ptr;
-
-/**
+/*
* NativeGraphics - concrete, hidden implementation of abstract Graphics
*
* The approach of using an abstract Graphics with a concrete NativeGraphics
@@ -26,11 +20,20 @@
* Copyright (c) 1998
* Transvirtual Technologies, Inc. All rights reserved.
*
+ * Copyright (c) 2004
+ * The Kaffe.org's developers. See ChangeLog for details.
+ *
* See the file "license.terms" for information on usage and redistribution * of this file. *
* @author P.C.Mehlitz
*/
+
+package java.awt;
+
+import java.awt.image.ImageObserver;
+import kaffe.util.Ptr;
+
class NativeGraphics
extends Graphics
{
@@ -43,7 +46,9 @@
int xClip;
int yClip;
int wClip;
+ int wClipDefault;
int hClip;
+ int hClipDefault;
Color xClr;
/*
* this field can be used to link a Graphics object to a non-native
@@ -389,9 +394,13 @@
return (getClipRect());
}


-public Rectangle getClipBounds() {
- // Another return object which is modified by Swing, causing more garbage <sigh>
- return (new Rectangle( xClip, yClip, wClip, hClip));
+public Rectangle getClipBounds(Rectangle rect) {
+ rect.x = xClip;
+ rect.y = yClip;
+ rect.width = wClip;
+ rect.height = hClip;
+
+ return rect;
}


int getClipHeight () {
@@ -545,7 +554,9 @@
    g.xClip  = xClip;
    g.yClip  = yClip;
    g.wClip  = wClip;
+    g.wClipDefault = wClip;
    g.hClip = hClip;
+    g.hClipDefault = hClip;
    g.font     = fnt;
    g.fgClr    = fg;
    g.bgClr    = bg;
@@ -627,8 +638,14 @@
}

public void setClip ( Shape clip ){
-    Rectangle r = clip.getBounds();
-    setClip( r.x, r.y, r.width, r.height);
+    if ( clip != null ) {
+        Rectangle r = clip.getBounds();
+        setClip( r.x, r.y, r.width, r.height);
+    } else if ( target != null) {
+        setClip( 0, 0, target.width, target.height );
+    } else {
+        setClip( 0, 0, wClipDefault, hClipDefault );
+    }
}

public void setClip ( int x, int y, int width, int height ) {
Index: kaffe/libraries/javalib/java/awt/PSGraphics.java
diff -u kaffe/libraries/javalib/java/awt/PSGraphics.java:1.4 kaffe/libraries/javalib/java/awt/PSGraphics.java:1.5
--- kaffe/libraries/javalib/java/awt/PSGraphics.java:1.4 Wed Feb 10 21:34:34 1999
+++ kaffe/libraries/javalib/java/awt/PSGraphics.java Wed Jul 7 12:58:46 2004
@@ -1,3 +1,18 @@
+/*
+ * class PSGraphics - a PrintGraphics PostScript implementation
+ *
+ * Copyright (c) 1998
+ * Transvirtual Technologies, Inc. All rights reserved.
+ *
+ * Copyright (c) 2004
+ * The Kaffe.org's developers. See ChangeLog for details.
+ *
+ * See the file "license.terms" for information on usage and redistribution
+ * of this file.
+ *
+ * @author J.Mehlitz
+ */
+
package java.awt;


import java.awt.image.ColorModel;
@@ -9,17 +24,6 @@
import java.io.PrintStream;
import java.util.Hashtable;

-/**
- * class PSGraphics - a PrintGraphics PostScript implementation
- *
- * Copyright (c) 1998
- * Transvirtual Technologies, Inc. All rights reserved.
- *
- * See the file "license.terms" for information on usage and redistribution
- * of this file.
- *
- * @author J.Mehlitz
- */
public class PSGraphics
extends Graphics
implements PrintGraphics
@@ -276,7 +280,11 @@
}


public Rectangle getClipBounds() {
-    return null;
+        return null;
+}
+
+public Rectangle getClipBounds(Rectangle rect) {
+        return rect;
}

public Color getColor() {
Index: kaffe/libraries/javalib/java/awt/event/MouseEvent.java
diff -u kaffe/libraries/javalib/java/awt/event/MouseEvent.java:1.9 kaffe/libraries/javalib/java/awt/event/MouseEvent.java:1.10
--- kaffe/libraries/javalib/java/awt/event/MouseEvent.java:1.9 Sat May 17 17:28:02 2003
+++ kaffe/libraries/javalib/java/awt/event/MouseEvent.java Wed Jul 7 12:58:46 2004
@@ -1,19 +1,23 @@
-package java.awt.event;
-
-import java.awt.Component;
-import java.awt.Event;
-import java.awt.Point;
-
-/**
+/*
*
* Copyright (c) 1998
* Transvirtual Technologies Inc. All rights reserved.
*
+ * Copyright (c) 2004
+ * The Kaffe.org's developers. See ChangeLog for details.
+ *
* See the file "license.terms" for information on usage and redistribution
* of this file.
*
* @author P.C.Mehlitz
*/
+
+package java.awt.event;
+
+import java.awt.Component;
+import java.awt.Event;
+import java.awt.Point;
+
public class MouseEvent
extends InputEvent
{
@@ -21,6 +25,12 @@
protected int y;
protected int clickCount;
protected boolean isPopupTrigger;
+ + protected int button;
+ final public static int BUTTON1 = 1;
+ final public static int BUTTON2 = 2;
+ final public static int BUTTON3 = 3;
+ final public static int NOBUTTON = 0;
final public static int MOUSE_FIRST = 500;
final public static int MOUSE_LAST = 507;
final public static int MOUSE_CLICKED = MOUSE_FIRST;
@@ -55,6 +65,35 @@
this.y = y;
this.clickCount = clickCount;
this.isPopupTrigger = isPopupTrigger;
+
+ if ( ( modifiers & BUTTON1_MASK ) > 0 )
+ this.button = BUTTON1;
+ else if ( ( modifiers & BUTTON2_MASK ) > 0 )
+ this.button = BUTTON2;
+ else if ( ( modifiers & BUTTON3_MASK) > 0 )
+ this.button = BUTTON3;
+ else
+ this.button = NOBUTTON;
+}
+
+public MouseEvent ( Component src, int evtId, long time, int modifiers,
+ int x, int y, int clickCount, boolean isPopupTrigger, + int button) {
+ super( src, evtId);
+ + this.when = time;
+ this.modifiers = modifiers;
+
+ this.x = x;
+ this.y = y;
+ this.clickCount = clickCount;
+ this.isPopupTrigger = isPopupTrigger;
+
+ this.button = button;
+}
+
+public int getButton() {
+ return button;
}


public int getClickCount() {

_______________________________________________
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe




Hello ,

This patch is really not good for my machine :

java.lang.NullPointerException
  at java.awt.MouseEvt.getEvent (MouseEvt.java:288)
  at java.awt.Toolkit.evtGetNextEvent (Toolkit.java)
  at java.awt.EventQueue.getNextEvent (EventQueue.java:174)
  at java.awt.EventDispatchThread.run (EventDispatchThread.java:34)
java.lang.ArrayIndexOutOfBoundsException
  at java.awt.MouseEvt.getEvent (MouseEvt.java:283)
  at java.awt.Toolkit.evtGetNextEvent (Toolkit.java)
  at java.awt.EventQueue.getNextEvent (EventQueue.java:174)
  at java.awt.EventDispatchThread.run (EventDispatchThread.java:34)

...
...
java.lang.ArrayIndexOutOfBoundsException
  at java.awt.ComponentEvt.getEvent (ComponentEvt.java:98)
  at java.awt.Toolkit.evtGetNextEvent (Toolkit.java)
  at java.awt.EventQueue.getNextEvent (EventQueue.java:174)
  at java.awt.EventDispatchThread.run (EventDispatchThread.java:34)
java.lang.ArrayIndexOutOfBoundsException
  at java.awt.ComponentEvt.getEvent (ComponentEvt.java:98)
  at java.awt.Toolkit.evtGetNextEvent (Toolkit.java)
  at java.awt.EventQueue.getNextEvent (EventQueue.java:174)
  at java.awt.EventDispatchThread.run (EventDispatchThread.java:34)
java.lang.ArrayIndexOutOfBoundsException
  at java.awt.PaintEvt.getEvent (PaintEvt.java:63)
  at java.awt.Toolkit.evtGetNextEvent (Toolkit.java)
  at java.awt.EventQueue.getNextEvent (EventQueue.java:174)
  at java.awt.EventDispatchThread.run (EventDispatchThread.java:34)


Cheers, Fabien


Ok I have this error because I have srcIdx = -1
Actually these errors are not due to patch but before this one, they occured only when I created a new window (when I press load in WidgetsDemo).



Cheers, Fabien



_______________________________________________ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe





--- End Message ---
_______________________________________________
kaffe mailing list
[EMAIL PROTECTED]
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to