summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Fitzsimmons <fitzsim@redhat.com>2006-10-26 21:48:36 +0000
committerThomas Fitzsimmons <fitzsim@redhat.com>2006-10-26 21:48:36 +0000
commitfd1f7e4d08accf2f2c7bb2726e4ca40ae994fe80 (patch)
tree34351e5b390b8365d7234b55911aaa9741ba39d1
parentdf757f3051eab08f54339840b45cecf091b0ef8b (diff)
downloadclasspath-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--ChangeLog8
-rw-r--r--native/jawt/jawt.c2
-rw-r--r--native/jni/classpath/classpath_jawt.h1
-rw-r--r--native/jni/gtk-peer/gtk_jawt.c35
4 files changed, 46 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index f851c2aef..4db82d7ce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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)
{