Index: ChangeLog =================================================================== RCS file: /cvsroot/classpath/classpath/ChangeLog,v retrieving revision 1.2320 diff -u -r1.2320 ChangeLog --- ChangeLog 19 Jul 2004 13:58:38 -0000 1.2320 +++ ChangeLog 19 Jul 2004 17:20:41 -0000 @@ -1,3 +1,11 @@ +2004-07-19 Craig Black + + * native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c, + include/gnu_java_awt_peer_gtk_GtkMenuPeer.h + (addTearOff): Add tear-off menu support. + * gnu/java/awt/peer/gtk/GtkMenuPeer.java + (init): Add tear-off menu support. + 2004-06-19 Archie Cobbs * native/jni/java-net/gnu_java_net_PlainDatagramSocketImpl.c Index: gnu/java/awt/peer/gtk/GtkMenuPeer.java =================================================================== RCS file: /cvsroot/classpath/classpath/gnu/java/awt/peer/gtk/GtkMenuPeer.java,v retrieving revision 1.7 diff -u -r1.7 GtkMenuPeer.java --- gnu/java/awt/peer/gtk/GtkMenuPeer.java 17 Apr 2004 23:24:46 -0000 1.7 +++ gnu/java/awt/peer/gtk/GtkMenuPeer.java 19 Jul 2004 17:20:44 -0000 @@ -52,11 +52,15 @@ native void create (String label); native void addItem (MenuItemPeer item, int key, boolean shiftModifier); native void setupAccelGroup (GtkGenericPeer container); + native void addTearOff (); public GtkMenuPeer (Menu menu) { super (menu); + if (menu.isTearOff()) + addTearOff(); + MenuContainer parent = menu.getParent (); if (parent instanceof Menu) setupAccelGroup ((GtkGenericPeer)((Menu)parent).getPeer ()); Index: include/gnu_java_awt_peer_gtk_GtkMenuPeer.h =================================================================== RCS file: /cvsroot/classpath/classpath/include/gnu_java_awt_peer_gtk_GtkMenuPeer.h,v retrieving revision 1.4 diff -u -r1.4 gnu_java_awt_peer_gtk_GtkMenuPeer.h --- include/gnu_java_awt_peer_gtk_GtkMenuPeer.h 28 May 2004 17:27:53 -0000 1.4 +++ include/gnu_java_awt_peer_gtk_GtkMenuPeer.h 19 Jul 2004 17:20:47 -0000 @@ -14,6 +14,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_addItem (JNIEnv *env, jobject, jobject, jint, jboolean); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_setupAccelGroup (JNIEnv *env, jobject, jobject); JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_delItem (JNIEnv *env, jobject, jint); +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_addTearOff (JNIEnv *env, jobject); #ifdef __cplusplus } Index: native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c =================================================================== RCS file: /cvsroot/classpath/classpath/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c,v retrieving revision 1.12 diff -u -r1.12 gnu_java_awt_peer_gtk_GtkMenuPeer.c --- native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c 31 May 2004 21:12:22 -0000 1.12 +++ native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkMenuPeer.c 19 Jul 2004 17:20:51 -0000 @@ -128,6 +128,24 @@ (*env)->ReleaseStringUTFChars (env, label, str); } +JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_addTearOff + (JNIEnv *env, jobject obj) +{ + void *ptr1; + GtkWidget *menu, *item; + + ptr1 = NSA_GET_PTR (env, obj); + + gdk_threads_enter (); + + menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (ptr1)); + item = gtk_tearoff_menu_item_new (); + gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); + gtk_widget_show (item); + + gdk_threads_leave (); +} + JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkMenuPeer_addItem (JNIEnv *env, jobject obj, jobject menuitempeer, jint key, jboolean shift) {