diff options
author | farshadmuhammad <farshadmuhammad@cmail.carleton.ca> | 2013-07-19 15:50:38 -0400 |
---|---|---|
committer | farshadmuhammad <farshadmuhammad@cmail.carleton.ca> | 2013-07-19 15:50:38 -0400 |
commit | b8b72a7bb7f3a822c7ba290f1b9aef386b80ccbf (patch) | |
tree | b10b95570105455e88e1356efee8ca6c54f3f283 /native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c | |
parent | 4c1b567bb1c279f343cd4b5188cd2172af960e3f (diff) | |
download | classpath-b8b72a7bb7f3a822c7ba290f1b9aef386b80ccbf.tar.gz |
GTK3 commit - Farshad Muhammad
Diffstat (limited to 'native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c')
-rw-r--r-- | native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c | 40 |
1 files changed, 36 insertions, 4 deletions
diff --git a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c index 3e39b0ee2..3f9a2c66f 100644 --- a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c +++ b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkButtonPeer.c @@ -102,18 +102,46 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetGetPreferredDimensions dims = (*env)->GetIntArrayElements (env, jdims, 0); dims[0] = dims[1] = 0; - + #if GTK_MAJOR_VERSION == 3 /* Save the button's current size request. */ + //gtk_widget_size_request (GTK_WIDGET (button), ¤t_req); + gtk_widget_get_preferred_size(GTK_WIDGET(button), ¤t_req, NULL); + + /* Save the label's current size request. */ + //gtk_widget_size_request (GTK_WIDGET (label), ¤t_label_req); + gtk_widget_get_preferred_size(GTK_WIDGET(label), ¤t_label_req, NULL); + + /* Get the widget's "natural" size request. */ + gtk_widget_set_size_request (GTK_WIDGET (button), -1, -1); + gtk_widget_set_size_request (GTK_WIDGET (label), -1, -1); + + //gtk_widget_size_request (GTK_WIDGET (button), &natural_req); + gtk_widget_get_preferred_size(GTK_WIDGET(button), NULL, &natural_req); + + /* Reset the button's size request. */ + gtk_widget_set_size_request (GTK_WIDGET (button), + current_req.width, current_req.height); + + /* Reset the label's size request. */ + gtk_widget_set_size_request (GTK_WIDGET (label), + current_label_req.width, current_label_req.height); + #endif + //HERE + #if GTK_MAJOR_VERSION == 2 + /* Save the button's current size request. */ gtk_widget_size_request (GTK_WIDGET (button), ¤t_req); + /* Save the label's current size request. */ gtk_widget_size_request (GTK_WIDGET (label), ¤t_label_req); + /* Get the widget's "natural" size request. */ gtk_widget_set_size_request (GTK_WIDGET (button), -1, -1); gtk_widget_set_size_request (GTK_WIDGET (label), -1, -1); gtk_widget_size_request (GTK_WIDGET (button), &natural_req); + /* Reset the button's size request. */ gtk_widget_set_size_request (GTK_WIDGET (button), @@ -122,7 +150,7 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetGetPreferredDimensions /* Reset the label's size request. */ gtk_widget_set_size_request (GTK_WIDGET (label), current_label_req.width, current_label_req.height); - + #endif dims[0] = natural_req.width; dims[1] = natural_req.height; @@ -311,6 +339,7 @@ JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkButtonPeer_gtkWidgetRequestFocus (JNIEnv *env, jobject obj) { +printf("THIS IS WHERE ITS FAILING"); void *ptr; GtkWidget *button; @@ -352,8 +381,11 @@ Java_gnu_java_awt_peer_gtk_GtkButtonPeer_setNativeBounds /* ...and the label's size request. */ gtk_widget_set_size_request (gtk_bin_get_child (GTK_BIN (child)), width, height); - if (widget->parent != NULL && GTK_IS_FIXED (widget->parent)) - gtk_fixed_move (GTK_FIXED (widget->parent), widget, x, y); + /*if (widget->parent != NULL && GTK_IS_FIXED (widget->parent)) + gtk_fixed_move (GTK_FIXED (widget->parent), widget, x, y);*/ + if (gtk_widget_get_parent(widget) != NULL && GTK_IS_FIXED (gtk_widget_get_parent(widget))) + gtk_fixed_move (GTK_FIXED (gtk_widget_get_parent(widget)), widget, x, y); + } gdk_threads_leave (); |