Added changes to gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c to solve
assertion errors.
2006-03-10 Lillian Angel <[EMAIL PROTECTED]>
*
native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c
(comboboxgroup_get_widget): New function.
(removed): Fixed to use new function to get the correct widget.
* native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
(nativeSetCheckboxGroup): Reverted last patch to use get_widget
function.
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c
===================================================================
RCS file: /sources/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c,v
retrieving revision 1.5
diff -u -r1.5 gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c 22 Sep 2005 20:25:39 -0000 1.5
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.c 10 Mar 2006 21:04:51 -0000
@@ -39,6 +39,8 @@
#include "gtkpeer.h"
#include "gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer.h"
+static GtkWidget *comboboxgroup_get_widget (GtkWidget *widget);
+
JNIEXPORT void JNICALL
Java_gnu_java_awt_peer_gtk_GtkCheckboxGroupPeer_dispose
(JNIEnv *env, jobject obj)
@@ -59,7 +61,7 @@
gdk_threads_enter ();
ptr = NSA_GET_PTR (env, checkbox);
- button = GTK_RADIO_BUTTON (ptr);
+ button = GTK_RADIO_BUTTON (comboboxgroup_get_widget (GTK_WIDGET (ptr)));
/* Update the group to point to some other widget in the group. We
have to do this because Gtk doesn't have a separate object to
@@ -75,3 +77,11 @@
gdk_threads_leave ();
}
+
+static GtkWidget *
+comboboxgroup_get_widget (GtkWidget *widget)
+{
+ if (GTK_IS_EVENT_BOX (widget))
+ return gtk_bin_get_child (GTK_BIN(widget));
+ return widget;
+}
Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
===================================================================
RCS file: /sources/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c,v
retrieving revision 1.24
diff -u -r1.24 gnu_java_awt_peer_gtk_GtkCheckboxPeer.c
--- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c 10 Mar 2006 20:05:56 -0000 1.24
+++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkCheckboxPeer.c 10 Mar 2006 21:04:51 -0000
@@ -127,16 +127,18 @@
{
GtkRadioButton *button;
void *native_group, *ptr;
+ GtkWidget *bin;
gdk_threads_enter ();
ptr = NSA_GET_PTR (env, obj);
+ bin = combobox_get_widget (GTK_WIDGET (ptr));
/* FIXME: we can't yet switch between a checkbutton and a
radiobutton. However, AWT requires this. For now we just
crash. */
- button = GTK_RADIO_BUTTON (ptr);
+ button = GTK_RADIO_BUTTON (bin);
native_group = NSA_GET_PTR (env, group);
if (native_group == NULL)