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 |
} |
} |
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 |
|
|
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 |
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", |
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 |
|
|