summaryrefslogtreecommitdiff
path: root/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
diff options
context:
space:
mode:
Diffstat (limited to 'native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c')
-rw-r--r--native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c24
1 files changed, 20 insertions, 4 deletions
diff --git a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
index 3703858fe..24dbabc20 100644
--- a/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
+++ b/native/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkLabelPeer.c
@@ -85,16 +85,29 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_gtkWidgetGetPreferredDimensions
dims = (*env)->GetIntArrayElements (env, jdims, 0);
dims[0] = dims[1] = 0;
+ #if GTK_MAJOR_VERSION == 3
/* Save the widget's current size request. */
+
+ gtk_widget_get_preferred_size(GTK_WIDGET (label), &current_req, NULL);
+ /* Get the widget's "natural" size request. */
+ gtk_widget_set_size_request (GTK_WIDGET (label), -1, -1);
+ gtk_widget_get_preferred_size(GTK_WIDGET (label), NULL, &natural_req);
+
+ /* Reset the widget's size request. */
+ gtk_widget_set_size_request (GTK_WIDGET (label),
+ current_req.width, current_req.height);
+ #elif GTK_MAJOR_VERSION == 2
+ /* Save the widget's current size request. */
gtk_widget_size_request (GTK_WIDGET (label), &current_req);
-
+
/* Get the widget's "natural" size request. */
gtk_widget_set_size_request (GTK_WIDGET (label), -1, -1);
gtk_widget_size_request (GTK_WIDGET (label), &natural_req);
-
+
/* Reset the widget's size request. */
gtk_widget_set_size_request (GTK_WIDGET (label),
current_req.width, current_req.height);
+ #endif
dims[0] = natural_req.width;
dims[1] = natural_req.height;
@@ -213,8 +226,11 @@ Java_gnu_java_awt_peer_gtk_GtkLabelPeer_setNativeBounds
gtk_widget_set_size_request (gtk_bin_get_child (GTK_BIN (widget)),
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 ();