diff options
author | Michael Koch <konqueror@gmx.de> | 2005-02-10 15:15:09 +0000 |
---|---|---|
committer | Michael Koch <konqueror@gmx.de> | 2005-02-10 15:15:09 +0000 |
commit | 837d6028ec401f4827102f6f03945b0ec312fce0 (patch) | |
tree | d4a7fc6004f48e1586e7f10ed584d29cb9a0ab35 | |
parent | f3ec0c5ab40bac917bfc6b0590d8982877cb6587 (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
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. |