diff options
author | Anthony Green <green@redhat.com> | 2005-03-05 21:47:10 +0000 |
---|---|---|
committer | Thomas Fitzsimmons <fitzsim@gcc.gnu.org> | 2005-03-05 21:47:10 +0000 |
commit | 011ad0584495ebbf43243a811166df479bba578c (patch) | |
tree | c15a9469945dc66556efc2b98914d3904ca49180 /libjava/jni/gtk-peer/gtk_jawt.c | |
parent | 3f724eb8a71c5aa02709ff34b93d272881bf69f8 (diff) | |
download | gcc-011ad0584495ebbf43243a811166df479bba578c.zip gcc-011ad0584495ebbf43243a811166df479bba578c.tar.gz gcc-011ad0584495ebbf43243a811166df479bba578c.tar.bz2 |
gtk_jawt.c (classpath_jawt_get_drawable, [...]): New functions.
2005-02-15 Anthony Green <green@redhat.com>
* jni/gtk-peer/gtk_jawt.c (classpath_jawt_get_drawable,
classpath_jawt_lock, classpath_jawt_unlock): New functions.
* jawt.c (_Jv_JAWT_Lock, _Jv_JAWT_Unlock): New functions.
(_Jv_GetDrawingSurface): Set visualID.
(_Jv_FreeDrawingSurfaceInfo): Clear visualID.
(JAWT_GetAWT): Set Lock and Unlock.
* include/jawt_md.h (struct _JAWT_X11DrawingSurfaceInfo): Add visualID.
* include/jawt.h (JAWT_VERSION_1_4, JAWT_LOCK_ERROR,
JAWT_LOCK_CLIP_CHANGED, JAWT_LOCK_BOUNDS_CHANGED,
JAWT_LOCK_SURFACE_CHANGED): New macros.
(struct _JAWT): Add Lock and Unlock.
From-SVN: r95943
Diffstat (limited to 'libjava/jni/gtk-peer/gtk_jawt.c')
-rw-r--r-- | libjava/jni/gtk-peer/gtk_jawt.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/libjava/jni/gtk-peer/gtk_jawt.c b/libjava/jni/gtk-peer/gtk_jawt.c index 6a12fc7..cba3b15 100644 --- a/libjava/jni/gtk-peer/gtk_jawt.c +++ b/libjava/jni/gtk-peer/gtk_jawt.c @@ -85,6 +85,40 @@ classpath_jawt_get_default_display (JNIEnv* env, jobject canvas) return xdisplay; } +VisualID +classpath_jawt_get_visualID (JNIEnv* env, jobject canvas) +{ + GtkWidget *widget; + Visual *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); + + gdk_threads_enter (); + + widget = GTK_WIDGET (ptr); + + g_assert (GTK_WIDGET_REALIZED (widget)); + + visual = gdk_x11_visual_get_xvisual (gtk_widget_get_visual (widget)); + g_assert (visual != NULL); + + gdk_threads_leave (); + + return visual->visualid; +} + Drawable classpath_jawt_get_drawable (JNIEnv* env, jobject canvas) { |