[kaffe] CVS kaffe (robilad): Resyynced with GNU Classpath: various
small AWT fixes
Kaffe CVS
cvs-commits at kaffe.org
Sat Dec 11 15:15:27 PST 2004
PatchSet 5614
Date: 2004/12/11 23:08:35
Author: robilad
Branch: HEAD
Tag: (none)
Log:
Resyynced with GNU Classpath: various small AWT fixes
2004-12-11 Dalibor Topic <robilad at kaffe.org>
* libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c,
libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphics.java,
libraries/javalib/gnu/java/awt/peer/gtk/GtkFramePeer.java,
libraries/javalib/gnu/java/awt/peer/gtk/GtkWindowPeer.java,
libraries/javalib/java/awt/Component.java,
libraries/javalib/java/awt/Container.java,
libraries/javalib/java/awt/Window.java:
Resynced with GNU Classpath.
2004-12-11 Thomas Fitzsimmons <fitzsim at redhat.com>
* gnu/java/awt/peer/gtk/GdkGraphics.java (setClip): Protect
against null clip region.
* gnu/java/awt/peer/gtk/GtkFramePeer.java (create): Call
gtkWindowSetResizable.
(postConfigureEvent): Only revalidate if frame size has changed.
* gnu/java/awt/peer/gtk/GtkWindowPeer.java (postConfigureEvent):
Only revalidate if frame size has changed.
* java/awt/Component.java (reshape): Only repaint and post
component events if component is showing.
* java/awt/Container.java (addImpl): Only post container event if
container is showing.
(remove): Likewise.
* java/awt/Window.java (setLocationRelativeTo): Implement.
(setBoundsCallback): Only post component events if component is
showing.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (clearRect):
Protect against null graphics structure. Flush gdk event queue.
Members:
ChangeLog:1.3159->1.3160
libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c:1.8->1.9
libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphics.java:1.7->1.8
libraries/javalib/gnu/java/awt/peer/gtk/GtkFramePeer.java:1.6->1.7
libraries/javalib/gnu/java/awt/peer/gtk/GtkWindowPeer.java:1.4->1.5
libraries/javalib/java/awt/Component.java:1.45->1.46
libraries/javalib/java/awt/Container.java:1.27->1.28
libraries/javalib/java/awt/Window.java:1.24->1.25
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.3159 kaffe/ChangeLog:1.3160
--- kaffe/ChangeLog:1.3159 Sat Dec 11 20:49:36 2004
+++ kaffe/ChangeLog Sat Dec 11 23:08:35 2004
@@ -1,3 +1,34 @@
+2004-12-11 Dalibor Topic <robilad at kaffe.org>
+
+ * libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c,
+ libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphics.java,
+ libraries/javalib/gnu/java/awt/peer/gtk/GtkFramePeer.java,
+ libraries/javalib/gnu/java/awt/peer/gtk/GtkWindowPeer.java,
+ libraries/javalib/java/awt/Component.java,
+ libraries/javalib/java/awt/Container.java,
+ libraries/javalib/java/awt/Window.java:
+ Resynced with GNU Classpath.
+
+ 2004-12-11 Thomas Fitzsimmons <fitzsim at redhat.com>
+
+ * gnu/java/awt/peer/gtk/GdkGraphics.java (setClip): Protect
+ against null clip region.
+ * gnu/java/awt/peer/gtk/GtkFramePeer.java (create): Call
+ gtkWindowSetResizable.
+ (postConfigureEvent): Only revalidate if frame size has changed.
+ * gnu/java/awt/peer/gtk/GtkWindowPeer.java (postConfigureEvent):
+ Only revalidate if frame size has changed.
+ * java/awt/Component.java (reshape): Only repaint and post
+ component events if component is showing.
+ * java/awt/Container.java (addImpl): Only post container event if
+ container is showing.
+ (remove): Likewise.
+ * java/awt/Window.java (setLocationRelativeTo): Implement.
+ (setBoundsCallback): Only post component events if component is
+ showing.
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (clearRect):
+ Protect against null graphics structure. Flush gdk event queue.
+
2004-12-11 Adam Heath <doogie at brainfood.com>
* include/Arrays.h, include/native.h, kaffe/kaffevm/object.c,
Index: kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
diff -u kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c:1.8 kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c:1.9
--- kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c:1.8 Fri Dec 3 23:21:55 2004
+++ kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c Sat Dec 11 23:08:37 2004
@@ -438,6 +438,12 @@
g = (struct graphics *) NSA_GET_PTR (env, obj);
gdk_threads_enter ();
+
+ if (!g)
+ {
+ gdk_threads_leave ();
+ return;
+ }
if (GDK_IS_WINDOW (g->drawable))
{
w.widget = &widget;
@@ -455,6 +461,8 @@
x + g->x_offset, y + g->y_offset, width, height);
gdk_gc_set_foreground (g->gc, &(saved.foreground));
}
+
+ gdk_flush ();
gdk_threads_leave ();
}
Index: kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphics.java
diff -u kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphics.java:1.7 kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphics.java:1.8
--- kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphics.java:1.7 Fri Dec 3 23:21:55 2004
+++ kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GdkGraphics.java Sat Dec 11 23:08:38 2004
@@ -418,7 +418,8 @@
public void setClip (int x, int y, int width, int height)
{
- if (component != null && ! component.isRealized ())
+ if ((component != null && ! component.isRealized ())
+ || clip == null)
return;
clip.x = x;
Index: kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GtkFramePeer.java
diff -u kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GtkFramePeer.java:1.6 kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GtkFramePeer.java:1.7
--- kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GtkFramePeer.java:1.6 Fri Dec 3 23:21:56 2004
+++ kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GtkFramePeer.java Sat Dec 11 23:08:38 2004
@@ -165,7 +165,7 @@
setMenuBar (frame.getMenuBar ());
setTitle (frame.getTitle ());
- setResizable (frame.isResizable ());
+ gtkWindowSetResizable (frame.isResizable ());
setIconImage(frame.getIconImage());
}
@@ -237,9 +237,9 @@
frame_y,
frame_width,
frame_height);
- }
- awtComponent.validate();
+ awtComponent.validate();
+ }
}
protected void postMouseEvent(int id, long when, int mods, int x, int y,
Index: kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GtkWindowPeer.java
diff -u kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GtkWindowPeer.java:1.4 kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GtkWindowPeer.java:1.5
--- kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GtkWindowPeer.java:1.4 Sat Oct 9 22:18:51 2004
+++ kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GtkWindowPeer.java Sat Dec 11 23:08:38 2004
@@ -166,10 +166,12 @@
|| frame_y != awtComponent.getY()
|| frame_width != awtComponent.getWidth()
|| frame_height != awtComponent.getHeight())
- setBoundsCallback ((Window) awtComponent,
- frame_x, frame_y, frame_width, frame_height);
+ {
+ setBoundsCallback ((Window) awtComponent,
+ frame_x, frame_y, frame_width, frame_height);
- awtComponent.validate();
+ awtComponent.validate();
+ }
}
native void nativeSetVisible (boolean b);
Index: kaffe/libraries/javalib/java/awt/Component.java
diff -u kaffe/libraries/javalib/java/awt/Component.java:1.45 kaffe/libraries/javalib/java/awt/Component.java:1.46
--- kaffe/libraries/javalib/java/awt/Component.java:1.45 Mon Dec 6 19:02:13 2004
+++ kaffe/libraries/javalib/java/awt/Component.java Sat Dec 11 23:08:40 2004
@@ -1362,7 +1362,7 @@
peer.setBounds (x, y, width, height);
// Erase old bounds and repaint new bounds for lightweights.
- if (isLightweight())
+ if (isLightweight() && isShowing ())
{
boolean shouldRepaintParent = false;
boolean shouldRepaintSelf = false;
@@ -1386,13 +1386,16 @@
repaint();
}
- if (oldx != x || oldy != y)
+ // Only post event if this component is visible and has changed size.
+ if (isShowing ()
+ && (oldx != x || oldy != y))
{
ComponentEvent ce = new ComponentEvent(this,
ComponentEvent.COMPONENT_MOVED);
getToolkit().getSystemEventQueue().postEvent(ce);
}
- if (oldwidth != width || oldheight != height)
+ if (isShowing ()
+ && (oldwidth != width || oldheight != height))
{
ComponentEvent ce = new ComponentEvent(this,
ComponentEvent.COMPONENT_RESIZED);
Index: kaffe/libraries/javalib/java/awt/Container.java
diff -u kaffe/libraries/javalib/java/awt/Container.java:1.27 kaffe/libraries/javalib/java/awt/Container.java:1.28
--- kaffe/libraries/javalib/java/awt/Container.java:1.27 Wed Nov 24 21:49:17 2004
+++ kaffe/libraries/javalib/java/awt/Container.java Sat Dec 11 23:08:40 2004
@@ -387,11 +387,14 @@
layoutMgr.addLayoutComponent(null, comp);
}
- // Post event to notify of adding the container.
- ContainerEvent ce = new ContainerEvent(this,
- ContainerEvent.COMPONENT_ADDED,
- comp);
- getToolkit().getSystemEventQueue().postEvent(ce);
+ if (isShowing ())
+ {
+ // Post event to notify of adding the component.
+ ContainerEvent ce = new ContainerEvent(this,
+ ContainerEvent.COMPONENT_ADDED,
+ comp);
+ getToolkit().getSystemEventQueue().postEvent(ce);
+ }
}
}
@@ -419,11 +422,14 @@
r.parent = null;
- // Post event to notify of adding the container.
- ContainerEvent ce = new ContainerEvent(this,
- ContainerEvent.COMPONENT_REMOVED,
- r);
- getToolkit().getSystemEventQueue().postEvent(ce);
+ if (isShowing ())
+ {
+ // Post event to notify of removing the component.
+ ContainerEvent ce = new ContainerEvent(this,
+ ContainerEvent.COMPONENT_REMOVED,
+ r);
+ getToolkit().getSystemEventQueue().postEvent(ce);
+ }
}
}
Index: kaffe/libraries/javalib/java/awt/Window.java
diff -u kaffe/libraries/javalib/java/awt/Window.java:1.24 kaffe/libraries/javalib/java/awt/Window.java:1.25
--- kaffe/libraries/javalib/java/awt/Window.java:1.24 Wed Nov 24 21:49:19 2004
+++ kaffe/libraries/javalib/java/awt/Window.java Sat Dec 11 23:08:40 2004
@@ -731,6 +731,22 @@
return super.isShowing();
}
+ public void setLocationRelativeTo (Component c)
+ {
+ if (c == null || !c.isShowing ())
+ {
+ int x = 0;
+ int y = 0;
+
+ GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment ();
+ Point center = ge.getCenterPoint ();
+ x = center.x - (width / 2);
+ y = center.y - (height / 2);
+ setLocation (x, y);
+ }
+ // FIXME: handle case where component is non-null.
+ }
+
/**
* @since 1.2
*
@@ -866,13 +882,13 @@
this.y = y;
width = w;
height = h;
- if (resized)
+ if (resized && isShowing ())
{
ComponentEvent ce =
new ComponentEvent(this, ComponentEvent.COMPONENT_RESIZED);
getToolkit().getSystemEventQueue().postEvent(ce);
}
- if (moved)
+ if (moved && isShowing ())
{
ComponentEvent ce =
new ComponentEvent(this, ComponentEvent.COMPONENT_MOVED);
More information about the kaffe
mailing list