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

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

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

revision 1.36.2.9 by gnu_andrew, Wed Nov 2 00:44:06 2005 UTC revision 1.36.2.10 by gnu_andrew, Sun Nov 27 21:00:42 2005 UTC
# Line 454  Java_gnu_java_awt_peer_gtk_GtkComponentP Line 454  Java_gnu_java_awt_peer_gtk_GtkComponentP
454   * Find the origin of a widget's window.   * Find the origin of a widget's window.
455   */   */
456  JNIEXPORT void JNICALL  JNIEXPORT void JNICALL
457  Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen  Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWindowGetLocationOnScreen
458    (JNIEnv * env, jobject obj, jintArray jpoint)    (JNIEnv * env, jobject obj, jintArray jpoint)
459  {  {
460    void *ptr;    void *ptr;
# Line 467  Java_gnu_java_awt_peer_gtk_GtkComponentP Line 467  Java_gnu_java_awt_peer_gtk_GtkComponentP
467    
468    gdk_window_get_root_origin (GTK_WIDGET (ptr)->window, point, point+1);    gdk_window_get_root_origin (GTK_WIDGET (ptr)->window, point, point+1);
469    
470    if (!GTK_IS_CONTAINER (ptr))    (*env)->ReleaseIntArrayElements(env, jpoint, point, 0);
471      {  
472        *point += GTK_WIDGET(ptr)->allocation.x;    gdk_threads_leave ();
473        *(point+1) += GTK_WIDGET(ptr)->allocation.y;  }
474      }  
475    /*
476     * Find the origin of a widget
477     */
478    JNIEXPORT void JNICALL
479    Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetGetLocationOnScreen
480      (JNIEnv * env, jobject obj, jintArray jpoint)
481    {
482      void *ptr;
483      jint *point;
484      GtkWidget *widget;
485    
486      gdk_threads_enter ();
487    
488      ptr = NSA_GET_PTR (env, obj);
489      point = (*env)->GetIntArrayElements (env, jpoint, 0);
490    
491      widget = GTK_WIDGET(ptr);
492      while(gtk_widget_get_parent(widget) != NULL)
493        widget = gtk_widget_get_parent(widget);
494      gdk_window_get_position (GTK_WIDGET(widget)->window, point, point+1);
495    
496      *point += GTK_WIDGET(ptr)->allocation.x;
497      *(point+1) += GTK_WIDGET(ptr)->allocation.y;
498    
499    (*env)->ReleaseIntArrayElements(env, jpoint, point, 0);    (*env)->ReleaseIntArrayElements(env, jpoint, point, 0);
500    

Legend:
Removed from v.1.36.2.9  
changed lines
  Added in v.1.36.2.10

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