/[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.37 by mkoch, Wed Sep 22 11:03:10 2004 UTC revision 1.38 by mkoch, Fri Oct 8 22:16:09 2004 UTC
# Line 490  Java_gnu_java_awt_peer_gtk_GtkComponentP Line 490  Java_gnu_java_awt_peer_gtk_GtkComponentP
490    widget = GTK_WIDGET (ptr);    widget = GTK_WIDGET (ptr);
491    parent_widget = GTK_WIDGET (parent_ptr);    parent_widget = GTK_WIDGET (parent_ptr);
492    
493    if (GTK_IS_WINDOW (parent_widget))    if (widget->parent == NULL)
494      {      {
495        GList *children = gtk_container_children        if (GTK_IS_WINDOW (parent_widget))
496          (GTK_CONTAINER (parent_widget));          {
497              GList *children = gtk_container_children
498        if (GTK_IS_MENU_BAR (children->data))              (GTK_CONTAINER (parent_widget));
499          gtk_fixed_put (GTK_FIXED (children->next->data), widget, 0, 0);  
500              if (GTK_IS_MENU_BAR (children->data))
501                gtk_fixed_put (GTK_FIXED (children->next->data), widget, 0, 0);
502              else
503                gtk_fixed_put (GTK_FIXED (children->data), widget, 0, 0);
504            }
505        else        else
506          gtk_fixed_put (GTK_FIXED (children->data), widget, 0, 0);          if (GTK_IS_SCROLLED_WINDOW (parent_widget))
507              {
508                gtk_scrolled_window_add_with_viewport
509                  (GTK_SCROLLED_WINDOW (parent_widget), widget);
510                gtk_viewport_set_shadow_type (GTK_VIEWPORT (widget->parent),
511                                              GTK_SHADOW_NONE);
512    
513              }
514            else
515              {
516                if (widget->parent == NULL)
517                  gtk_fixed_put (GTK_FIXED (parent_widget), widget, 0, 0);
518              }
519      }      }
   else  
     if (GTK_IS_SCROLLED_WINDOW (parent_widget))  
       {  
         gtk_scrolled_window_add_with_viewport  
           (GTK_SCROLLED_WINDOW (parent_widget), widget);  
         gtk_viewport_set_shadow_type (GTK_VIEWPORT (widget->parent),  
                                       GTK_SHADOW_NONE);  
   
       }  
     else  
       gtk_fixed_put (GTK_FIXED (parent_widget), widget, 0, 0);  
520    
521    gdk_threads_leave ();    gdk_threads_leave ();
522  }  }
# Line 788  JNIEXPORT void JNICALL Java_gnu_java_awt Line 794  JNIEXPORT void JNICALL Java_gnu_java_awt
794    width = width < 0 ? 0 : width;    width = width < 0 ? 0 : width;
795    height = height < 0 ? 0 : height;    height = height < 0 ? 0 : height;
796    
797    if (GTK_IS_VIEWPORT (widget->parent))    if (widget->parent != NULL)
     gtk_widget_set_size_request (widget, width, height);  
   else  
798      {      {
799        gtk_widget_set_size_request (widget, width, height);        if (GTK_IS_VIEWPORT (widget->parent))
800        gtk_fixed_move (GTK_FIXED (widget->parent), widget, x, y);          gtk_widget_set_size_request (widget, width, height);
801          else
802            {
803              if (!(width == 0 && height == 0))
804                {
805                  gtk_widget_set_size_request (widget, width, height);
806                  gtk_fixed_move (GTK_FIXED (widget->parent), widget, x, y);
807                }
808            }
809      }      }
   
810    gdk_threads_leave ();    gdk_threads_leave ();
811  }  }
812    
# Line 951  Java_gnu_java_awt_peer_gtk_GtkComponentP Line 962  Java_gnu_java_awt_peer_gtk_GtkComponentP
962  }  }
963    
964  JNIEXPORT jboolean JNICALL  JNIEXPORT jboolean JNICALL
965  Java_gnu_java_awt_peer_gtk_GtkComponentPeer_modalHasGrab  Java_gnu_java_awt_peer_gtk_GtkComponentPeer_isRealized
966    (JNIEnv *env __attribute__((unused)), jclass clazz __attribute__((unused)))    (JNIEnv *env, jobject obj)
 {  
   GtkWidget *widget;  
   jboolean retval;  
   
   gdk_threads_enter ();  
   widget = gtk_grab_get_current ();  
   retval = (widget && GTK_IS_WINDOW (widget) && GTK_WINDOW (widget)->modal);  
   gdk_threads_leave ();  
   
   return retval;  
 }  
   
 JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_gtkWidgetRepaintArea  
   (JNIEnv *env, jobject obj, jint x, jint y, jint width, jint height)  
967  {  {
   GdkRectangle rect;  
968    void *ptr;    void *ptr;
969      jboolean ret_val;
970    
971    ptr = NSA_GET_PTR (env, obj);    ptr = NSA_GET_PTR (env, obj);
972    
973    gdk_threads_enter ();    if (ptr == NULL)
974        return FALSE;
   rect.x = x;  
   rect.y = y;  
   rect.width = width;  
   rect.height = height;  
   
   gdk_window_invalidate_rect (GTK_WIDGET (ptr)->window, &rect, 0);  
   gdk_window_process_updates (GTK_WIDGET (ptr)->window, TRUE);  
975    
976      gdk_threads_enter ();
977      ret_val = GTK_WIDGET_REALIZED (GTK_WIDGET (ptr));
978    gdk_threads_leave ();    gdk_threads_leave ();
979    
980      return ret_val;
981  }  }
982    
983  JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectJObject  JNIEXPORT jboolean JNICALL
984    (JNIEnv *env, jobject obj)  Java_gnu_java_awt_peer_gtk_GtkComponentPeer_modalHasGrab
985      (JNIEnv *env __attribute__((unused)), jclass clazz __attribute__((unused)))
986  {  {
987    void *ptr;    GtkWidget *widget;
988      jboolean retval;
   ptr = NSA_GET_PTR (env, obj);  
989    
990    gdk_threads_enter ();    gdk_threads_enter ();
991      widget = gtk_grab_get_current ();
992    gtk_widget_realize (GTK_WIDGET (ptr));    retval = (widget && GTK_IS_WINDOW (widget) && GTK_WINDOW (widget)->modal);
   
   connect_awt_hook (env, obj, 1, GTK_WIDGET (ptr)->window);  
   
993    gdk_threads_leave ();    gdk_threads_leave ();
994    
995      return retval;
996  }  }
997    
998  JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals  JNIEXPORT void JNICALL Java_gnu_java_awt_peer_gtk_GtkComponentPeer_connectSignals
# Line 1013  JNIEXPORT void JNICALL Java_gnu_java_awt Line 1006  JNIEXPORT void JNICALL Java_gnu_java_awt
1006    
1007    gdk_threads_enter ();    gdk_threads_enter ();
1008    
   gtk_widget_realize (GTK_WIDGET (ptr));  
   
1009    /* Connect EVENT signal, which happens _before_ any specific signal. */    /* Connect EVENT signal, which happens _before_ any specific signal. */
1010    
1011    g_signal_connect (GTK_OBJECT (ptr), "event",    g_signal_connect (GTK_OBJECT (ptr), "event",
# Line 1026  JNIEXPORT void JNICALL Java_gnu_java_awt Line 1017  JNIEXPORT void JNICALL Java_gnu_java_awt
1017    g_signal_connect (G_OBJECT (ptr), "focus-out-event",    g_signal_connect (G_OBJECT (ptr), "focus-out-event",
1018                      G_CALLBACK (focus_out_cb), *gref);                      G_CALLBACK (focus_out_cb), *gref);
1019    
1020      g_signal_connect_after (G_OBJECT (ptr), "realize",
1021                              G_CALLBACK (connect_awt_hook_cb), *gref);
1022    
1023    gdk_threads_leave ();    gdk_threads_leave ();
1024  }  }
1025    

Legend:
Removed from v.1.37  
changed lines
  Added in v.1.38

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