/[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.2.1 by gnu_andrew, Tue Aug 16 16:22:39 2005 UTC revision 1.1.2.2 by gnu_andrew, Sat Sep 10 15:32:02 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. */    if (GTK_WIDGET_REALIZED (widget))
77    g_assert (GTK_WIDGET_REALIZED (widget));      {
78          display = gtk_widget_get_display (widget);
   display = gtk_widget_get_display (widget);  
79    
80    xdisplay = GDK_DISPLAY_XDISPLAY (display);        xdisplay = GDK_DISPLAY_XDISPLAY (display);
   
   gdk_threads_leave ();  
81    
82    return xdisplay;        return xdisplay;
83        }
84      else
85        return NULL;
86  }  }
87    
88    /* Does not require locking: meant to be called after the drawing
89       surface is locked. */
90  VisualID  VisualID
91  classpath_jawt_get_visualID (JNIEnv* env, jobject canvas)  classpath_jawt_get_visualID (JNIEnv* env, jobject canvas)
92  {  {
# Line 105  classpath_jawt_get_visualID (JNIEnv* env Line 107  classpath_jawt_get_visualID (JNIEnv* env
107    
108    ptr = NSA_GET_PTR (env, peer);    ptr = NSA_GET_PTR (env, peer);
109    
   gdk_threads_enter ();  
   
110    widget = GTK_WIDGET (ptr);    widget = GTK_WIDGET (ptr);
111    
112    g_assert (GTK_WIDGET_REALIZED (widget));    if (GTK_WIDGET_REALIZED (widget))
113        {
114    visual = gdk_x11_visual_get_xvisual (gtk_widget_get_visual (widget));        visual = gdk_x11_visual_get_xvisual (gtk_widget_get_visual (widget));
115    g_assert (visual != NULL);        g_assert (visual != NULL);
116    
117    gdk_threads_leave ();        return visual->visualid;
118        }
119    return visual->visualid;    else
120        return (VisualID) NULL;
121  }  }
122    
123    /* Does not require locking: meant to be called after the drawing
124       surface is locked. */
125  Drawable  Drawable
126  classpath_jawt_get_drawable (JNIEnv* env, jobject canvas)  classpath_jawt_get_drawable (JNIEnv* env, jobject canvas)
127  {  {
# Line 139  classpath_jawt_get_drawable (JNIEnv* env Line 142  classpath_jawt_get_drawable (JNIEnv* env
142    
143    ptr = NSA_GET_PTR (env, peer);    ptr = NSA_GET_PTR (env, peer);
144    
   gdk_threads_enter ();  
   
145    widget = GTK_WIDGET (ptr);    widget = GTK_WIDGET (ptr);
146    
147    g_assert (GTK_WIDGET_REALIZED (widget));    if (GTK_WIDGET_REALIZED (widget))
148        {
149    drawable = GDK_DRAWABLE_XID (widget->window);        drawable = GDK_DRAWABLE_XID (widget->window);
150    
151    gdk_threads_leave ();        return drawable;
152        }
153    return drawable;    else
154  }      return (Drawable) NULL;
   
 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);  
155  }  }
156    
157  jint  jint
# Line 179  classpath_jawt_unlock () Line 166  classpath_jawt_unlock ()
166  {  {
167    gdk_threads_leave ();    gdk_threads_leave ();
168  }  }
   
 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.2.1  
changed lines
  Added in v.1.1.2.2

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