[kaffe] CVS kaffe (robilad): Resynced with GNU Classpath: awt,
swing fixes
Kaffe CVS
cvs-commits at kaffe.org
Sun Jul 3 08:16:56 PDT 2005
PatchSet 6687
Date: 2005/07/03 15:10:25
Author: robilad
Branch: HEAD
Tag: (none)
Log:
Resynced with GNU Classpath: awt, swing fixes
Members:
ChangeLog:1.4212->1.4213
libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c:1.9->1.10
libraries/javalib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:1.8->1.9
libraries/javalib/gnu/java/awt/peer/gtk/GtkImage.java:1.6->1.7
libraries/javalib/gnu/xml/aelfred2/XmlParser.java:1.16->1.17
libraries/javalib/java/util/logging/Logger.java:1.6->1.7
libraries/javalib/javax/swing/GrayFilter.java:1.3->1.4
libraries/javalib/javax/swing/JDialog.java:1.5->1.6
libraries/javalib/javax/swing/JFrame.java:1.8->1.9
libraries/javalib/javax/swing/JInternalFrame.java:1.11->1.12
libraries/javalib/javax/swing/JScrollPane.java:1.12->1.13
libraries/javalib/javax/swing/SwingUtilities.java:1.16->1.17
libraries/javalib/javax/swing/plaf/basic/BasicInternalFrameUI.java:1.5->1.6
libraries/javalib/javax/swing/plaf/basic/BasicLabelUI.java:1.2->1.3
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4212 kaffe/ChangeLog:1.4213
--- kaffe/ChangeLog:1.4212 Sun Jul 3 15:00:38 2005
+++ kaffe/ChangeLog Sun Jul 3 15:10:25 2005
@@ -2,6 +2,97 @@
Resynced with GNU Classpath.
+ 2005-06-23 Sven de Marothy <sven at physto.se>
+
+ * gnu/java/awt/peer/gtk/GtkImage.java: Don't draw 0 size images.
+
+ 2005-06-23 Sven de Marothy <sven at physto.se>
+
+ * gnu/java/awt/peer/gtk/GtkImage.java: Add case source size > size.
+
+ 2005-06-22 Mark Wielaard <mark at klomp.org>
+
+ * gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
+ (pumpBytes): Throws IOException.
+ (pumpDone): New native method.
+ (produce): Call pumpDone().
+ * include/gnu_java_awt_peer_gtk_GdkPixbufDecoder.h: Regenerated.
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
+ (Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpDone): New method.
+ (Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpBytes): Check for
+ errors on gdk_pixbuf_loader_write.
+
+ 2005-06-22 Anthony Balkissoon <abalkiss at redhat.com>
+
+ * javax/swing/plaf/basic/BasicInternalFrameUI.java:
+ (InternalFramePropertyChangeListener.vetoableChange):
+ Repaint the JDesktopPane when JInternalFrame is closed.
+ Also veto the close request, because hiding is not
+ closing.
+
+ 2005-06-22 Anthony Balkissoon <abalkiss at redhat.com>
+
+ * javax/swing/SwingUtilities.java:
+ (layoutCompoundLabel): Added check for multi-line text.
+
+ 2005-06-22 Anthony Balkissoon <abalkiss at redhat.com>
+
+ * javax/swing/JDialog.java:
+ (setDefaultCloseOperation): Removed validity check for
+ operation code. Validity is handled in processWindowEvent.
+ * javax/swing/JFrame.java:
+ (setDefaultCloseOperation): Changed error message to be more
+ descriptive and similar to reference implementation.
+ * javax/swing/JInternalFrame.java:
+ (setDefaultCloseOperation): Removed validity check for
+ operation code.
+ * javax/swing/plaf/basic/BasicInternalFrameUI.java:
+ (InternalFramePropertyListener): Added implementation of
+ VetoableChangeListener.
+ (InternalFramePropertyListener.vetoableChange): New method.
+ (InternalFramePropertyListener.propertyChange): Removed
+ check for JInternalFrame.IS_CLOSED_PROPERTY. This is now
+ handled in vetoableChange.
+ (getDesktopManager): Added a check for null pointer from
+ JInternalFrame.getDesktopPane().
+
+ 2005-06-22 Roman Kennke <roman at kennke.org>
+
+ * javax/swing/plaf/basic/BasicLabelUI.java
+ (installDefaults): JLabels are not opaque by default.
+
+ 2005-06-22 Roman Kennke <roman at kennke.org>
+
+ * javax/swing/GrayFilter.java
+ (constructor): Compute factor at initialization time.
+ (createDisabledImage): Initialize GrayFilter with correct arguments.
+ (filterRGB): Reworked filter method. This is now compliant with
+ the JDK behaviour.
+
+ 2005-06-22 Mark Wielaard <mark at klomp.org>
+
+ Fixes bug #13439
+ * javax/swing/JScrollPane.java (JScrollPane(Component,int,int)):
+ Set viewport, view and scrollLostener manually.
+
+ 2005-06-21 Lillian Angel <langel at redhat.com>
+
+ * java/util/logging/Logger.java
+ (setParent): No lines after throwing an exception are executed
+ and there is no point to check if the parent is null, because a
+ NullPointerException would have been thrown earlier. Fixes Bug
+ #13460.
+
+ 2005-06-21 Lillian Angel <langel at redhat.com>
+
+ * gnu/xml/aelfred2/XmlParser
+ (parseAttribute): if (type.equals("CDATA") || type == null)
+ this would always throw a NullPointerException if type is null.
+
+2005-07-03 Dalibor Topic <robilad at kaffe.org>
+
+ Resynced with GNU Classpath.
+
2005-06-20 Mark Wielaard <mark at klomp.org>
* javax/swing/DefaultDesktopManager.java (getBoundsForIconOf):
Index: kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c
diff -u kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c:1.9 kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c:1.10
--- kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c:1.9 Sat May 21 19:03:11 2005
+++ kaffe/libraries/clib/awt/classpath-gtk/gtk-peer/gnu_java_awt_peer_gtk_GdkPixbufDecoder.c Sun Jul 3 15:10:28 2005
@@ -1,5 +1,5 @@
/* gdkpixbufdecoder.c
- Copyright (C) 1999, 2003, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2003, 2004, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -41,6 +41,7 @@
#include <gdk-pixbuf/gdk-pixbuf-loader.h>
#include <jni.h>
+#include <jcl.h>
#include "native_state.h"
#include "gnu_java_awt_peer_gtk_GdkPixbufDecoder.h"
@@ -72,8 +73,7 @@
jint width, height;
GdkPixbuf *pixbuf = gdk_pixbuf_loader_get_pixbuf (loader);
- if (pixbuf == NULL)
- return;
+ g_assert (pixbuf != NULL);
width = gdk_pixbuf_get_width (pixbuf);
height = gdk_pixbuf_get_height (pixbuf);
@@ -311,6 +311,26 @@
gdk_pixbuf_loader_close (loader, NULL);
g_object_unref (loader);
gdk_threads_leave ();
+
+}
+
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpDone
+(JNIEnv *env, jobject obj)
+{
+ GError *err = NULL;
+ GdkPixbufLoader *loader = (GdkPixbufLoader *)NSA_GET_PB_PTR (env, obj);
+ g_assert (loader != NULL);
+
+ gdk_threads_enter ();
+ gdk_pixbuf_loader_close (loader, &err);
+ gdk_threads_leave ();
+
+ if (err != NULL)
+ {
+ JCL_ThrowException (env, "java/io/IOException", err->message);
+ g_error_free (err);
+ }
}
struct stream_save_request
@@ -423,15 +443,17 @@
(*env)->ReleaseIntArrayElements (env, jarr, ints, 0);
}
+
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GdkPixbufDecoder_pumpBytes
(JNIEnv *env, jobject obj, jbyteArray jarr, jint len)
{
GdkPixbufLoader *loader = NULL;
jbyte *bytes = NULL;
+ GError *err = NULL;
- if (len < 1)
- return;
+ g_assert (len >= 1);
+ g_assert (jarr != NULL);
bytes = (*env)->GetByteArrayElements (env, jarr, NULL);
g_assert (bytes != NULL);
@@ -439,8 +461,14 @@
g_assert (loader != NULL);
gdk_threads_enter ();
- gdk_pixbuf_loader_write (loader, (const guchar *) bytes, len, NULL);
+ gdk_pixbuf_loader_write (loader, (const guchar *) bytes, len, &err);
gdk_threads_leave ();
(*env)->ReleaseByteArrayElements (env, jarr, bytes, 0);
+
+ if (err != NULL)
+ {
+ JCL_ThrowException (env, "java/io/IOException", err->message);
+ g_error_free (err);
+ }
}
Index: kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java
diff -u kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:1.8 kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:1.9
--- kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java:1.8 Sat Feb 19 15:30:25 2005
+++ kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GdkPixbufDecoder.java Sun Jul 3 15:10:29 2005
@@ -90,7 +90,8 @@
// interface to GdkPixbuf
native void initState ();
- native void pumpBytes (byte[] bytes, int len);
+ native void pumpBytes (byte[] bytes, int len) throws IOException;
+ native void pumpDone () throws IOException;
native void finish ();
static native void streamImage(int[] bytes, String format, int width, int height, boolean hasAlpha, DataOutput sink);
@@ -165,6 +166,7 @@
initState();
while ((len = is.read (bytes)) != -1)
pumpBytes (bytes, len);
+ pumpDone();
for (int i = 0; i < curr.size (); i++)
{
Index: kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GtkImage.java
diff -u kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GtkImage.java:1.6 kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GtkImage.java:1.7
--- kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GtkImage.java:1.6 Sat Jun 11 21:09:32 2005
+++ kaffe/libraries/javalib/gnu/java/awt/peer/gtk/GtkImage.java Sun Jul 3 15:10:29 2005
@@ -375,18 +375,33 @@
int dstY = (dy1 < dy2) ? dy1 : dy2;
// Clipping. This requires the dst to be scaled as well,
+ if (srcWidth > width)
+ {
+ dstWidth = (int)((double)dstWidth*((double)width/(double)srcWidth));
+ srcWidth = width - srcX;
+ }
+
+ if (srcHeight > height)
+ {
+ dstHeight = (int)((double)dstHeight*((double)height/(double)srcHeight));
+ srcHeight = height - srcY;
+ }
+
if (srcWidth + srcX > width)
{
dstWidth = (int)((double)dstWidth * (double)(width - srcX)/(double)srcWidth);
srcWidth = width - srcX;
- }
+ }
if (srcHeight + srcY > height)
{
dstHeight = (int)((double)dstHeight * (double)(width - srcY)/(double)srcHeight);
srcHeight = height - srcY;
}
-
+
+ if ( srcWidth <= 0 || srcHeight <= 0 || dstWidth <= 0 || dstHeight <= 0)
+ return true;
+
if(bgcolor != null)
drawPixelsScaledFlipped (g, bgcolor.getRed (), bgcolor.getGreen (),
bgcolor.getBlue (),
Index: kaffe/libraries/javalib/gnu/xml/aelfred2/XmlParser.java
diff -u kaffe/libraries/javalib/gnu/xml/aelfred2/XmlParser.java:1.16 kaffe/libraries/javalib/gnu/xml/aelfred2/XmlParser.java:1.17
--- kaffe/libraries/javalib/gnu/xml/aelfred2/XmlParser.java:1.16 Mon Apr 18 17:56:59 2005
+++ kaffe/libraries/javalib/gnu/xml/aelfred2/XmlParser.java Sun Jul 3 15:10:29 2005
@@ -1437,7 +1437,7 @@
}
else
{
- if (type.equals("CDATA") || type == null)
+ if (type == null || type.equals("CDATA"))
{
value = readLiteral(flags);
}
Index: kaffe/libraries/javalib/java/util/logging/Logger.java
diff -u kaffe/libraries/javalib/java/util/logging/Logger.java:1.6 kaffe/libraries/javalib/java/util/logging/Logger.java:1.7
--- kaffe/libraries/javalib/java/util/logging/Logger.java:1.6 Thu Apr 28 23:45:17 2005
+++ kaffe/libraries/javalib/java/util/logging/Logger.java Sun Jul 3 15:10:30 2005
@@ -1150,13 +1150,8 @@
lm = LogManager.getLogManager();
if (this == lm.rootLogger)
- {
- if (parent != null)
throw new IllegalArgumentException(
"only the root logger can have a null parent");
- this.parent = null;
- return;
- }
/* An application is allowed to control an anonymous logger
* without having the permission to control the logging
Index: kaffe/libraries/javalib/javax/swing/GrayFilter.java
diff -u kaffe/libraries/javalib/javax/swing/GrayFilter.java:1.3 kaffe/libraries/javalib/javax/swing/GrayFilter.java:1.4
--- kaffe/libraries/javalib/javax/swing/GrayFilter.java:1.3 Sun Jul 3 15:00:43 2005
+++ kaffe/libraries/javalib/javax/swing/GrayFilter.java Sun Jul 3 15:10:30 2005
@@ -46,7 +46,7 @@
public class GrayFilter extends RGBImageFilter
{
private boolean b;
- private int p;
+ private double p;
/**
* Create a GrayFilter. If b is true then brighten. Also, indicate how much
@@ -58,7 +58,7 @@
public GrayFilter(boolean b, int p)
{
this.b = b; //FIXME - HANDLE THIS
- this.p = p;
+ this.p = (1. - (p / 100.)) / 3.;
}
/**
@@ -72,7 +72,7 @@
{
return (Toolkit.getDefaultToolkit().
createImage(new FilteredImageSource(src.getSource(),
- new GrayFilter(false, 100))));
+ new GrayFilter(true, 0))));
}
/**
@@ -80,7 +80,13 @@
*/
public int filterRGB(int x, int y, int rgb)
{
- return (int) (p * (0.299 * ((0xff0000 & rgb) >> 16)
- + 0.587 * ((0xff00 & rgb) >> 8) + 0.114 * (0xff & rgb)));
+ int alpha = 0xff000000 & rgb;
+ int red = (0xff0000 & rgb) >> 16;
+ int green = (0xff00 & rgb) >> 8;
+ int blue = (0xff & rgb);
+ int gray = (int) ((0.299 * red + 0.587 * green + 0.114 * blue) * p);
+ if (b)
+ gray = Math.min(gray + 128, 255);
+ return gray | gray << 8 | gray << 16 | alpha ;
}
}
Index: kaffe/libraries/javalib/javax/swing/JDialog.java
diff -u kaffe/libraries/javalib/javax/swing/JDialog.java:1.5 kaffe/libraries/javalib/javax/swing/JDialog.java:1.6
--- kaffe/libraries/javalib/javax/swing/JDialog.java:1.5 Sun Jul 3 14:37:56 2005
+++ kaffe/libraries/javalib/javax/swing/JDialog.java Sun Jul 3 15:10:30 2005
@@ -547,14 +547,12 @@
*/
public void setDefaultCloseOperation(int operation)
{
- if (operation == DO_NOTHING_ON_CLOSE ||
- operation == HIDE_ON_CLOSE ||
- operation == DISPOSE_ON_CLOSE)
- close_action = operation;
- else
- // accept illegal value and set the property to the default value,
- // that's what the reference implementation does
- close_action = DO_NOTHING_ON_CLOSE;
+ /* Reference implementation allows invalid operations
+ to be specified. If so, getDefaultCloseOperation
+ must return the invalid code, and the behaviour
+ defaults to DO_NOTHING_ON_CLOSE. processWindowEvent
+ above handles this */
+ close_action = operation;
}
/**
Index: kaffe/libraries/javalib/javax/swing/JFrame.java
diff -u kaffe/libraries/javalib/javax/swing/JFrame.java:1.8 kaffe/libraries/javalib/javax/swing/JFrame.java:1.9
--- kaffe/libraries/javalib/javax/swing/JFrame.java:1.8 Sun Jul 3 14:37:56 2005
+++ kaffe/libraries/javalib/javax/swing/JFrame.java Sun Jul 3 15:10:30 2005
@@ -342,7 +342,7 @@
if (operation != EXIT_ON_CLOSE && operation != DISPOSE_ON_CLOSE
&& operation != HIDE_ON_CLOSE && operation != DO_NOTHING_ON_CLOSE)
- throw new IllegalArgumentException("operation = " + operation);
+ throw new IllegalArgumentException("defaultCloseOperation must be EXIT_ON_CLOSE, HIDE_ON_CLOSE, DISPOSE_ON_CLOSE, or DO_NOTHING_ON_CLOSE");
close_action = operation;
}
Index: kaffe/libraries/javalib/javax/swing/JInternalFrame.java
diff -u kaffe/libraries/javalib/javax/swing/JInternalFrame.java:1.11 kaffe/libraries/javalib/javax/swing/JInternalFrame.java:1.12
--- kaffe/libraries/javalib/javax/swing/JInternalFrame.java:1.11 Sun Jul 3 14:37:56 2005
+++ kaffe/libraries/javalib/javax/swing/JInternalFrame.java Sun Jul 3 15:10:30 2005
@@ -1305,10 +1305,10 @@
*/
public void setDefaultCloseOperation(int operation)
{
- if (operation != DO_NOTHING_ON_CLOSE
- && operation != HIDE_ON_CLOSE
- && operation != DISPOSE_ON_CLOSE)
- throw new Error("Close operation must be one of DO_NOTHING_ON_CLOSE, HIDE_ON_CLOSE, or DISPOSE_ON_CLOSE");
+ /* Reference implementation allows invalid operations to be specified.
+ In that case, behaviour defaults to DO_NOTHING_ON_CLOSE.
+ processWindowEvent handles the behaviour. getDefaultCloseOperation
+ must return the invalid operator code. */
defaultCloseOperation = operation;
}
Index: kaffe/libraries/javalib/javax/swing/JScrollPane.java
diff -u kaffe/libraries/javalib/javax/swing/JScrollPane.java:1.12 kaffe/libraries/javalib/javax/swing/JScrollPane.java:1.13
--- kaffe/libraries/javalib/javax/swing/JScrollPane.java:1.12 Sun Jul 3 15:00:44 2005
+++ kaffe/libraries/javalib/javax/swing/JScrollPane.java Sun Jul 3 15:10:30 2005
@@ -588,7 +588,11 @@
setVerticalScrollBar(createVerticalScrollBar());
setHorizontalScrollBarPolicy(hsbPolicy);
setHorizontalScrollBar(createHorizontalScrollBar());
- setViewportView(view);
+ viewport = createViewport();
+ if (view != null)
+ getViewport().setView(view);
+ viewport.addChangeListener(scrollListener);
+ add(viewport);
setLayout(new ScrollPaneLayout());
setOpaque(false);
updateUI();
Index: kaffe/libraries/javalib/javax/swing/SwingUtilities.java
diff -u kaffe/libraries/javalib/javax/swing/SwingUtilities.java:1.16 kaffe/libraries/javalib/javax/swing/SwingUtilities.java:1.17
--- kaffe/libraries/javalib/javax/swing/SwingUtilities.java:1.16 Sat Jun 11 20:59:48 2005
+++ kaffe/libraries/javalib/javax/swing/SwingUtilities.java Sun Jul 3 15:10:30 2005
@@ -848,8 +848,14 @@
}
else
{
+ int fromIndex = 0;
textR.width = fm.stringWidth(text);
textR.height = fm.getHeight();
+ while (text.indexOf('\n', fromIndex) != -1)
+ {
+ textR.height += fm.getHeight();
+ fromIndex = text.indexOf('\n', fromIndex) + 1;
+ }
}
// Work out the position of text and icon, assuming the top-left coord
Index: kaffe/libraries/javalib/javax/swing/plaf/basic/BasicInternalFrameUI.java
diff -u kaffe/libraries/javalib/javax/swing/plaf/basic/BasicInternalFrameUI.java:1.5 kaffe/libraries/javalib/javax/swing/plaf/basic/BasicInternalFrameUI.java:1.6
--- kaffe/libraries/javalib/javax/swing/plaf/basic/BasicInternalFrameUI.java:1.5 Sat Jun 11 21:09:33 2005
+++ kaffe/libraries/javalib/javax/swing/plaf/basic/BasicInternalFrameUI.java Sun Jul 3 15:10:30 2005
@@ -53,6 +53,8 @@
import java.awt.event.MouseEvent;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
+import java.beans.PropertyVetoException;
+import java.beans.VetoableChangeListener;
import javax.swing.DefaultDesktopManager;
import javax.swing.DesktopManager;
@@ -864,8 +866,32 @@
* JInternalFrame.
*/
public class InternalFramePropertyChangeListener
- implements PropertyChangeListener
+ implements PropertyChangeListener, VetoableChangeListener
{
+
+ /**
+ * This method is called when one of the JInternalFrame's properties
+ * change. This method is to allow JInternalFrame to veto an attempt
+ * to close the internal frame. This allows JInternalFrame to honour
+ * its defaultCloseOperation if that is DO_NOTHING_ON_CLOSE.
+ */
+ public void vetoableChange(PropertyChangeEvent e) throws PropertyVetoException
+ {
+ if (e.getPropertyName().equals(JInternalFrame.IS_CLOSED_PROPERTY))
+ {
+ if (frame.getDefaultCloseOperation() == JInternalFrame.HIDE_ON_CLOSE)
+ {
+ frame.setVisible(false);
+ frame.getDesktopPane().repaint();
+ throw new PropertyVetoException ("close operation is HIDE_ON_CLOSE\n", e);
+ }
+ else if (frame.getDefaultCloseOperation() == JInternalFrame.DISPOSE_ON_CLOSE)
+ closeFrame(frame);
+ else
+ throw new PropertyVetoException ("close operation is DO_NOTHING_ON_CLOSE\n", e);
+ }
+ }
+
/**
* This method is called when one of the JInternalFrame's properties
* change.
@@ -881,8 +907,6 @@
else
minimizeFrame(frame);
}
- else if (evt.getPropertyName().equals(JInternalFrame.IS_CLOSED_PROPERTY))
- closeFrame(frame);
else if (evt.getPropertyName().equals(JInternalFrame.IS_ICON_PROPERTY))
{
if (frame.isIcon())
@@ -1031,6 +1055,13 @@
*/
protected PropertyChangeListener propertyChangeListener;
+ /**
+ * The VetoableChangeListener. Listens to PropertyChangeEvents
+ * from the JInternalFrame and allows the JInternalFrame to
+ * veto attempts to close it.
+ */
+ private VetoableChangeListener internalFrameVetoableChangeListener;
+
/** The InternalFrameListener that listens to the JInternalFrame. */
private transient BasicInternalFrameListener internalFrameListener;
@@ -1171,12 +1202,13 @@
borderListener = createBorderListener(frame);
componentListener = createComponentListener();
propertyChangeListener = createPropertyChangeListener();
+ internalFrameVetoableChangeListener = new InternalFramePropertyChangeListener();
frame.addMouseListener(borderListener);
frame.addMouseMotionListener(borderListener);
frame.addInternalFrameListener(internalFrameListener);
frame.addPropertyChangeListener(propertyChangeListener);
-
+ frame.addVetoableChangeListener(internalFrameVetoableChangeListener);
frame.getRootPane().getGlassPane().addMouseListener(glassPaneDispatcher);
frame.getRootPane().getGlassPane().addMouseMotionListener(glassPaneDispatcher);
}
@@ -1552,7 +1584,10 @@
*/
protected DesktopManager getDesktopManager()
{
- DesktopManager value = frame.getDesktopPane().getDesktopManager();
+ DesktopManager value = null;
+ JDesktopPane pane = frame.getDesktopPane();
+ if (pane != null)
+ value = frame.getDesktopPane().getDesktopManager();
if (value == null)
value = createDesktopManager();
return value;
Index: kaffe/libraries/javalib/javax/swing/plaf/basic/BasicLabelUI.java
diff -u kaffe/libraries/javalib/javax/swing/plaf/basic/BasicLabelUI.java:1.2 kaffe/libraries/javalib/javax/swing/plaf/basic/BasicLabelUI.java:1.3
--- kaffe/libraries/javalib/javax/swing/plaf/basic/BasicLabelUI.java:1.2 Sun Aug 8 19:46:06 2004
+++ kaffe/libraries/javalib/javax/swing/plaf/basic/BasicLabelUI.java Sun Jul 3 15:10:31 2005
@@ -351,7 +351,6 @@
c.setBackground(defaults.getColor("Label.background"));
c.setFont(defaults.getFont("Label.font"));
c.setBorder(defaults.getBorder("Label.border"));
- c.setOpaque(true);
//XXX: There are properties we don't use called disabledForeground
//and disabledShadow.
}
More information about the kaffe
mailing list