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)

Reply via email to