/[classpath]/classpath/native/jni/gtk-peer/gtk_jawt.c
ViewVC logotype

Diff of /classpath/native/jni/gtk-peer/gtk_jawt.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by tromey, Mon Aug 8 21:46:48 2005 UTC revision 1.2 by fitzsim, Sat Aug 20 22:46:54 2005 UTC
# Line 47  classpath_jawt_get_awt_version () Line 47  classpath_jawt_get_awt_version ()
47    return CLASSPATH_JAWT_VERSION;    return CLASSPATH_JAWT_VERSION;
48  }  }
49    
50    /* Does not require locking: meant to be called after the drawing
51       surface is locked. */
52  Display*  Display*
53  classpath_jawt_get_default_display (JNIEnv* env, jobject canvas)  classpath_jawt_get_default_display (JNIEnv* env, jobject canvas)
54  {  {
# Line 69  classpath_jawt_get_default_display (JNIE Line 71  classpath_jawt_get_default_display (JNIE
71    
72    ptr = NSA_GET_PTR (env, peer);    ptr = NSA_GET_PTR (env, peer);
73    
   gdk_threads_enter ();  
   
74    widget = GTK_WIDGET (ptr);    widget = GTK_WIDGET (ptr);
75    
76    /* widget should be realized before Canvas.paint is called. */    /* widget should be realized before Canvas.paint is called. */
# Line 80  classpath_jawt_get_default_display (JNIE Line 80  classpath_jawt_get_default_display (JNIE
80    
81    xdisplay = GDK_DISPLAY_XDISPLAY (display);    xdisplay = GDK_DISPLAY_XDISPLAY (display);
82    
   gdk_threads_leave ();  
   
83    return xdisplay;    return xdisplay;
84  }  }
85    
86    /* Does not require locking: meant to be called after the drawing
87       surface is locked. */
88  VisualID  VisualID
89  classpath_jawt_get_visualID (JNIEnv* env, jobject canvas)  classpath_jawt_get_visualID (JNIEnv* env, jobject canvas)
90  {  {
# Line 105  classpath_jawt_get_visualID (JNIEnv* env Line 105  classpath_jawt_get_visualID (JNIEnv* env
105    
106    ptr = NSA_GET_PTR (env, peer);    ptr = NSA_GET_PTR (env, peer);
107    
   gdk_threads_enter ();  
   
108    widget = GTK_WIDGET (ptr);    widget = GTK_WIDGET (ptr);
109    
110    g_assert (GTK_WIDGET_REALIZED (widget));    g_assert (GTK_WIDGET_REALIZED (widget));
# Line 114  classpath_jawt_get_visualID (JNIEnv* env Line 112  classpath_jawt_get_visualID (JNIEnv* env
112    visual = gdk_x11_visual_get_xvisual (gtk_widget_get_visual (widget));    visual = gdk_x11_visual_get_xvisual (gtk_widget_get_visual (widget));
113    g_assert (visual != NULL);    g_assert (visual != NULL);
114    
   gdk_threads_leave ();  
   
115    return visual->visualid;    return visual->visualid;
116  }  }
117    
118    /* Does not require locking: meant to be called after the drawing
119       surface is locked. */
120  Drawable  Drawable
121  classpath_jawt_get_drawable (JNIEnv* env, jobject canvas)  classpath_jawt_get_drawable (JNIEnv* env, jobject canvas)
122  {  {
# Line 139  classpath_jawt_get_drawable (JNIEnv* env Line 137  classpath_jawt_get_drawable (JNIEnv* env
137    
138    ptr = NSA_GET_PTR (env, peer);    ptr = NSA_GET_PTR (env, peer);
139    
   gdk_threads_enter ();  
   
140    widget = GTK_WIDGET (ptr);    widget = GTK_WIDGET (ptr);
141    
142    g_assert (GTK_WIDGET_REALIZED (widget));    g_assert (GTK_WIDGET_REALIZED (widget));
143    
144    drawable = GDK_DRAWABLE_XID (widget->window);    drawable = GDK_DRAWABLE_XID (widget->window);
145    
   gdk_threads_leave ();  
   
146    return drawable;    return drawable;
147  }  }
148    
149  jint  jint
 classpath_jawt_object_lock (jobject lock)  
 {  
   JNIEnv *env = cp_gtk_gdk_env();  
   (*env)->MonitorEnter (env, lock);  
   return 0;  
 }  
   
 void  
 classpath_jawt_object_unlock (jobject lock)  
 {  
   JNIEnv *env = cp_gtk_gdk_env();  
   (*env)->MonitorExit (env, lock);  
 }  
   
 jint  
150  classpath_jawt_lock ()  classpath_jawt_lock ()
151  {  {
152    gdk_threads_enter ();    gdk_threads_enter ();
# Line 179  classpath_jawt_unlock () Line 158  classpath_jawt_unlock ()
158  {  {
159    gdk_threads_leave ();    gdk_threads_leave ();
160  }  }
   
 jobject  
 classpath_jawt_create_lock ()  
 {  
   JNIEnv *env = cp_gtk_gdk_env ();  
   jobject lock = (*env)->NewStringUTF (env, "jawt-lock");  
   NSA_SET_GLOBAL_REF (env, lock);  
   return lock;  
 }  
   
 void  
 classpath_jawt_destroy_lock (jobject lock)  
 {  
   JNIEnv *env = cp_gtk_gdk_env ();  
   NSA_DEL_GLOBAL_REF (env, lock);  
 }  

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26