aboutsummaryrefslogtreecommitdiff
path: root/libjava/jni
diff options
context:
space:
mode:
authorKim Ho <kho@redhat.com>2004-01-16 20:05:41 +0000
committerKim Ho <kho@gcc.gnu.org>2004-01-16 20:05:41 +0000
commit2b8deefadd5a9b8f57a906df6caad580491be8dc (patch)
tree247b098b477f0be49b1034cad3e31432bd5540f0 /libjava/jni
parent79a76d653a725b128f216aaf5972c02609d58b95 (diff)
downloadgcc-2b8deefadd5a9b8f57a906df6caad580491be8dc.zip
gcc-2b8deefadd5a9b8f57a906df6caad580491be8dc.tar.gz
gcc-2b8deefadd5a9b8f57a906df6caad580491be8dc.tar.bz2
GtkComponentPeer.java (GtkComponentPeer): If it is a FileDialog and has dimensions of 0 by 0...
2004-01-16 Kim Ho <kho@redhat.com> * gnu/java/awt/peer/gtk/GtkComponentPeer.java (GtkComponentPeer): If it is a FileDialog and has dimensions of 0 by 0, then the initial size is set to size request plus insets. * gnu/java/awt/peer/gtk/GtkFileDialogPeer.java (gtkWidgetGetDimensions): Override method. * jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c (gtkWidgetGetDimensions): Override method. Returns size request plus insets. From-SVN: r75993
Diffstat (limited to 'libjava/jni')
-rw-r--r--libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
index c0f528a..8c6fc1f 100644
--- a/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
+++ b/libjava/jni/gtk-peer/gnu_java_awt_peer_gtk_GtkWindowPeer.c
@@ -1,5 +1,5 @@
/* gtkwindowpeer.c -- Native implementation of GtkWindowPeer
- Copyright (C) 1998, 1999, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2002, 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -400,6 +400,33 @@ Java_gnu_java_awt_peer_gtk_GtkFramePeer_getMenuBarHeight
return height;
}
+JNIEXPORT void JNICALL
+Java_gnu_java_awt_peer_gtk_GtkFileDialogPeer_gtkWidgetGetDimensions
+ (JNIEnv *env, jobject obj, jintArray jdims)
+{
+ void *ptr;
+ jint *dims;
+ int top, left, bottom, right;
+ GtkRequisition req;
+
+ ptr = NSA_GET_PTR (env, obj);
+ dims = (*env)->GetIntArrayElements (env, jdims, 0);
+ dims[0] = dims[1] = 0;
+
+ gdk_threads_enter ();
+
+ gtk_widget_size_request (GTK_WIDGET (ptr), &req);
+
+ window_get_frame_extents (GTK_WIDGET (ptr), &top, &left, &bottom, &right);
+
+ dims[0] = req.width + left + right;
+ dims[1] = req.height + top + bottom;
+
+ gdk_threads_leave ();
+
+ (*env)->ReleaseIntArrayElements (env, jdims, dims, 0);
+}
+
static void
window_get_frame_extents (GtkWidget *window,
int *top, int *left, int *bottom, int *right)