static gboolean window_property_changed_cb (GtkWidget *widget,
GdkEventProperty *event,
jobject peer);
-static void menubar_resize_cb (GtkWidget *widget, GtkAllocation *alloc,
- jobject peer);
/*
* Make a new window.
void *wptr;
GtkWidget *mptr;
GtkWidget *box;
- jobject *gref = NSA_GET_GLOBAL_REF (env, obj);
-
+
wptr = NSA_GET_PTR (env, obj);
mptr = NSA_GET_PTR (env, menubar);
gdk_threads_enter ();
- g_signal_connect (G_OBJECT (mptr), "size-allocate",
- G_CALLBACK (menubar_resize_cb), *gref);
box = GTK_BIN (wptr)->child;
gtk_box_pack_start (GTK_BOX (box), mptr, 0, 0, 0);
{
GtkWidget *ptr;
jint height;
+ GtkRequisition gtkreq;
ptr = NSA_GET_PTR (env, menubar);
gdk_threads_enter ();
- height = ptr->allocation.height;
+ gtk_widget_size_request (ptr, >kreq);
+
+ height = gtkreq.height;
gdk_threads_leave ();
return height;
}
return FALSE;
}
-
-static void menubar_resize_cb (GtkWidget *widget __attribute__((unused)),
- GtkAllocation *alloc __attribute__((unused)),
- jobject peer)
-{
- static int id_set = 0;
- static jmethodID postSizeAllocateEventID;
-
- if (!id_set)
- {
- jclass gtkframepeer = (*gdk_env)->FindClass (gdk_env,
- "gnu/java/awt/peer/gtk/GtkFramePeer");
- postSizeAllocateEventID = (*gdk_env)->GetMethodID (gdk_env,
- gtkframepeer,
- "postSizeAllocateEvent",
- "()V");
- id_set = 1;
- }
- gdk_threads_leave();
- (*gdk_env)->CallVoidMethod (gdk_env, peer,
- postSizeAllocateEventID);
- gdk_threads_enter();
-}