diff options
author | Thomas Fitzsimmons <fitzsim@redhat.com> | 2006-10-26 21:48:36 +0000 |
---|---|---|
committer | Thomas Fitzsimmons <fitzsim@redhat.com> | 2006-10-26 21:48:36 +0000 |
commit | fd1f7e4d08accf2f2c7bb2726e4ca40ae994fe80 (patch) | |
tree | 34351e5b390b8365d7234b55911aaa9741ba39d1 | |
parent | df757f3051eab08f54339840b45cecf091b0ef8b (diff) | |
download | classpath-fd1f7e4d08accf2f2c7bb2726e4ca40ae994fe80.tar.gz |
2006-10-26 Christian Elias Naur <elias@oddlabs.com>
* native/jni/gtk-peer/gtk_jawt.c (classpath_jawt_get_depth): New
function.
* native/jni/classpath/classpath_jawt.h: Likewise.
* native/jawt/jawt.c (_Jv_GetDrawingSurfaceInfo): Added
initializer for surface_info_x11->depth.
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | native/jawt/jawt.c | 2 | ||||
-rw-r--r-- | native/jni/classpath/classpath_jawt.h | 1 | ||||
-rw-r--r-- | native/jni/gtk-peer/gtk_jawt.c | 35 |
4 files changed, 46 insertions, 0 deletions
@@ -1,3 +1,11 @@ +2006-10-26 Christian Elias Naur <elias@oddlabs.com> + + * native/jni/gtk-peer/gtk_jawt.c (classpath_jawt_get_depth): New + function. + * native/jni/classpath/classpath_jawt.h: Likewise. + * native/jawt/jawt.c (_Jv_GetDrawingSurfaceInfo): Added + initializer for surface_info_x11->depth. + 2006-10-26 Tania Bento <tbento@redhat.com> * java/awt/FileDialog.java: diff --git a/native/jawt/jawt.c b/native/jawt/jawt.c index a41786850..4ebb105d7 100644 --- a/native/jawt/jawt.c +++ b/native/jawt/jawt.c @@ -116,6 +116,8 @@ static JAWT_DrawingSurfaceInfo* surface->target); surface_info_x11->visualID = classpath_jawt_get_visualID (surface->env, surface->target); + surface_info_x11->depth = classpath_jawt_get_depth (surface->env, + surface->target); /* FIXME: also include bounding rectangle of drawing surface */ /* FIXME: also include current clipping region */ diff --git a/native/jni/classpath/classpath_jawt.h b/native/jni/classpath/classpath_jawt.h index 32a04dc5c..35c734a57 100644 --- a/native/jni/classpath/classpath_jawt.h +++ b/native/jni/classpath/classpath_jawt.h @@ -54,6 +54,7 @@ jint classpath_jawt_get_awt_version (void); Display* classpath_jawt_get_default_display (JNIEnv* env, jobject canvas); Drawable classpath_jawt_get_drawable (JNIEnv* env, jobject canvas); VisualID classpath_jawt_get_visualID (JNIEnv* env, jobject canvas); +int classpath_jawt_get_depth (JNIEnv* env, jobject canvas); jint classpath_jawt_lock (void); void classpath_jawt_unlock (void); diff --git a/native/jni/gtk-peer/gtk_jawt.c b/native/jni/gtk-peer/gtk_jawt.c index 763db8d1e..2348a63fb 100644 --- a/native/jni/gtk-peer/gtk_jawt.c +++ b/native/jni/gtk-peer/gtk_jawt.c @@ -122,6 +122,41 @@ classpath_jawt_get_visualID (JNIEnv* env, jobject canvas) /* Does not require locking: meant to be called after the drawing surface is locked. */ +int +classpath_jawt_get_depth (JNIEnv* env, jobject canvas) +{ + GtkWidget *widget; + GdkVisual *visual; + void *ptr; + jobject peer; + jclass class_id; + jmethodID method_id; + + class_id = (*env)->GetObjectClass (env, canvas); + + method_id = (*env)->GetMethodID (env, class_id, + "getPeer", + "()Ljava/awt/peer/ComponentPeer;"); + + peer = (*env)->CallObjectMethod (env, canvas, method_id); + + ptr = NSA_GET_PTR (env, peer); + + widget = GTK_WIDGET (ptr); + + if (GTK_WIDGET_REALIZED (widget)) + { + visual = gtk_widget_get_visual (widget); + g_assert (visual != NULL); + + return visual->depth; + } + else + return (VisualID) NULL; +} + +/* Does not require locking: meant to be called after the drawing + surface is locked. */ Drawable classpath_jawt_get_drawable (JNIEnv* env, jobject canvas) { |