aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Koch <konqueror@gmx.de>2005-02-10 15:15:09 +0000
committerMichael Koch <konqueror@gmx.de>2005-02-10 15:15:09 +0000
commit837d6028ec401f4827102f6f03945b0ec312fce0 (patch)
treed4a7fc6004f48e1586e7f10ed584d29cb9a0ab35
parentf3ec0c5ab40bac917bfc6b0590d8982877cb6587 (diff)
2005-02-10 Michael Koch <konqueror@gmx.de>
* jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c: Fix includes for cairo 0.3.0 snappshot. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c: Merged file header from classpath CVS HEAD. 2005-02-10 Craig Black <craig.black@aonix.com> * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c (copyState): Pass a JNI global reference to signal handler. (realize_cb): Use and free JNI global reference. * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c (create): Pass a JNI global reference to signal handler. (selection_changed): Match declaration. * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c (dispose): Do not remove entries from state tables until after widget is destroyed. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/java-gui-20050128-branch@94830 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--libjava/ChangeLog19
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c8
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c3
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c8
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c8
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c4
6 files changed, 40 insertions, 10 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 8b188ad6ad4..72889d049f8 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,5 +1,24 @@
2005-02-10 Michael Koch <konqueror@gmx.de>
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c:
+ Fix includes for cairo 0.3.0 snappshot.
+ * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c:
+ Merged file header from classpath CVS HEAD.
+
+2005-02-10 Craig Black <craig.black@aonix.com>
+
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
+ (copyState): Pass a JNI global reference to signal handler.
+ (realize_cb): Use and free JNI global reference.
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
+ (create): Pass a JNI global reference to signal handler.
+ (selection_changed): Match declaration.
+ * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
+ (dispose): Do not remove entries from state tables until after widget is
+ destroyed.
+
+2005-02-10 Michael Koch <konqueror@gmx.de>
+
* java/awt/Container.javai (paramString):
If layoutMgr is null just return result of super.paramString().
* java/awt/Scrollbar.java: Reformatted.
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
index 3a68143ae7c..99b1511264c 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics.c
@@ -133,13 +133,17 @@ Java_gnu_java_awt_peer_gtk_GdkGraphics_connectSignals
(JNIEnv *env, jobject obj, jobject peer)
{
void *ptr;
+ jobject *gref;
+
+ NSA_SET_GLOBAL_REF (env, obj);
+ gref = NSA_GET_GLOBAL_REF (env, obj);
ptr = NSA_GET_PTR (env, peer);
gdk_threads_enter ();
g_signal_connect_after (G_OBJECT (ptr), "realize",
- G_CALLBACK (realize_cb), obj);
+ G_CALLBACK (realize_cb), *gref);
gdk_threads_leave ();
}
@@ -682,5 +686,7 @@ static void realize_cb (GtkWidget *widget __attribute__ ((unused)),
(*gdk_env())->CallVoidMethod (gdk_env(), peer, initComponentGraphicsID);
+ NSA_DEL_GLOBAL_REF (gdk_env(), peer);
+
gdk_threads_enter ();
}
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
index 3decfb775ec..3047f8cd885 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GdkGraphics2D.c
@@ -45,7 +45,8 @@
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gdk-pixbuf/gdk-pixdata.h>
-#include <cairo.h>
+#include <cairo-ft.h>
+#include <cairo-xlib.h>
#include <stdio.h>
#include <stdlib.h>
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
index c1bd911eca1..b4e64e62d02 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkChoicePeer.c
@@ -39,22 +39,24 @@ exception statement from your version. */
#include "gtkpeer.h"
#include "gnu_java_awt_peer_gtk_GtkChoicePeer.h"
-static void selection_changed (GtkComboBox *combobox, gpointer data);
+static void selection_changed (GtkComboBox *combobox, jobject peer);
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkChoicePeer_create
(JNIEnv *env, jobject obj)
{
GtkWidget *combobox;
+ jobject *gref;
NSA_SET_GLOBAL_REF (env, obj);
+ gref = NSA_GET_GLOBAL_REF (env, obj);
gdk_threads_enter ();
combobox = gtk_combo_box_new_text ();
g_signal_connect (combobox, "changed",
- G_CALLBACK (selection_changed), obj);
+ G_CALLBACK (selection_changed), *gref);
gdk_threads_leave ();
@@ -175,7 +177,7 @@ Java_gnu_java_awt_peer_gtk_GtkChoicePeer_nativeGetSelected
return index;
}
-void selection_changed (GtkComboBox *combobox, jobject peer)
+static void selection_changed (GtkComboBox *combobox, jobject peer)
{
jstring label;
GtkTreeModel *model;
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
index 808d76b2078..49ccffcf660 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkGenericPeer.c
@@ -45,9 +45,7 @@ Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose
{
void *ptr;
- /* Remove entries from state tables */
- NSA_DEL_GLOBAL_REF (env, obj);
- ptr = NSA_DEL_PTR (env, obj);
+ ptr = NSA_GET_PTR (env, obj);
gdk_threads_enter ();
@@ -57,6 +55,10 @@ Java_gnu_java_awt_peer_gtk_GtkGenericPeer_dispose
gdk_threads_leave ();
+ /* Remove entries from state tables */
+ NSA_DEL_GLOBAL_REF (env, obj);
+ NSA_DEL_PTR (env, obj);
+
/*
* Wake up the main thread, to make sure it re-checks the window
* destruction condition.
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
index 9b0884e7de6..468be06c157 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkListPeer.c
@@ -1,5 +1,5 @@
-/* gtklistpeer.c -- Native implementation of GtkListPeer
- Copyright (C) 1998, 1999, 2004 Free Software Foundation, Inc.
+/* GtkListPeer.c -- implements GtkListPeer's native methods
+ Copyright (C) 1998, 1999, 2003, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.