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

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

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

revision 1.32 by mkoch, Wed Jan 19 08:10:27 2005 UTC revision 1.33 by mkoch, Thu Feb 10 15:47:14 2005 UTC
# Line 883  pre_event_handler (GtkWidget *widget, Gd Line 883  pre_event_handler (GtkWidget *widget, Gd
883    switch (event->type)    switch (event->type)
884      {      {
885      case GDK_BUTTON_PRESS:      case GDK_BUTTON_PRESS:
886          gdk_threads_leave ();
887        (*gdk_env())->CallVoidMethod (gdk_env(), peer,        (*gdk_env())->CallVoidMethod (gdk_env(), peer,
888                                    postMouseEventID,                                    postMouseEventID,
889                                    AWT_MOUSE_PRESSED,                                    AWT_MOUSE_PRESSED,
# Line 894  pre_event_handler (GtkWidget *widget, Gd Line 895  pre_event_handler (GtkWidget *widget, Gd
895                                    click_count,                                    click_count,
896                                    (event->button.button == 3) ? JNI_TRUE :                                    (event->button.button == 3) ? JNI_TRUE :
897                                                                  JNI_FALSE);                                                                  JNI_FALSE);
898          gdk_threads_enter ();
899        hasBeenDragged = FALSE;        hasBeenDragged = FALSE;
900        break;        break;
901      case GDK_BUTTON_RELEASE:      case GDK_BUTTON_RELEASE:
902        {        {
903          int width, height;          int width, height;
904    
905            gdk_threads_leave ();
906          (*gdk_env())->CallVoidMethod (gdk_env(), peer,          (*gdk_env())->CallVoidMethod (gdk_env(), peer,
907                                      postMouseEventID,                                      postMouseEventID,
908                                      AWT_MOUSE_RELEASED,                                      AWT_MOUSE_RELEASED,
# Line 910  pre_event_handler (GtkWidget *widget, Gd Line 913  pre_event_handler (GtkWidget *widget, Gd
913                                      (jint)event->button.y,                                      (jint)event->button.y,
914                                      click_count,                                      click_count,
915                                      JNI_FALSE);                                      JNI_FALSE);
916            gdk_threads_enter ();
917    
918          /* Generate an AWT click event only if the release occured in the          /* Generate an AWT click event only if the release occured in the
919             window it was pressed in, and the mouse has not been dragged since             window it was pressed in, and the mouse has not been dragged since
# Line 921  pre_event_handler (GtkWidget *widget, Gd Line 925  pre_event_handler (GtkWidget *widget, Gd
925              && event->button.x <= width              && event->button.x <= width
926              && event->button.y <= height)              && event->button.y <= height)
927            {            {
928                gdk_threads_leave ();
929              (*gdk_env())->CallVoidMethod (gdk_env(), peer,              (*gdk_env())->CallVoidMethod (gdk_env(), peer,
930                                          postMouseEventID,                                          postMouseEventID,
931                                          AWT_MOUSE_CLICKED,                                          AWT_MOUSE_CLICKED,
# Line 931  pre_event_handler (GtkWidget *widget, Gd Line 936  pre_event_handler (GtkWidget *widget, Gd
936                                          (jint)event->button.y,                                          (jint)event->button.y,
937                                          click_count,                                          click_count,
938                                          JNI_FALSE);                                          JNI_FALSE);
939                gdk_threads_enter ();
940            }            }
941        }        }
942        break;        break;
# Line 941  pre_event_handler (GtkWidget *widget, Gd Line 947  pre_event_handler (GtkWidget *widget, Gd
947                                   | GDK_BUTTON4_MASK                                   | GDK_BUTTON4_MASK
948                                   | GDK_BUTTON5_MASK))                                   | GDK_BUTTON5_MASK))
949          {          {
950              gdk_threads_leave ();
951            (*gdk_env())->CallVoidMethod (gdk_env(), peer,            (*gdk_env())->CallVoidMethod (gdk_env(), peer,
952                                        postMouseEventID,                                        postMouseEventID,
953                                        AWT_MOUSE_DRAGGED,                                        AWT_MOUSE_DRAGGED,
# Line 950  pre_event_handler (GtkWidget *widget, Gd Line 957  pre_event_handler (GtkWidget *widget, Gd
957                                        (jint)event->motion.y,                                        (jint)event->motion.y,
958                                        0,                                        0,
959                                        JNI_FALSE);                                        JNI_FALSE);
960              gdk_threads_enter ();
961            hasBeenDragged = TRUE;            hasBeenDragged = TRUE;
962          }          }
963        else        else
964          (*gdk_env())->CallVoidMethod (gdk_env(), peer, postMouseEventID,          {
965                                      AWT_MOUSE_MOVED,            gdk_threads_leave ();
966                                      (jlong)event->motion.time,            (*gdk_env())->CallVoidMethod (gdk_env(), peer, postMouseEventID,
967                                      state_to_awt_mods (event->motion.state),                                          AWT_MOUSE_MOVED,
968                                      (jint)event->motion.x,                                          (jlong)event->motion.time,
969                                      (jint)event->motion.y,                                          state_to_awt_mods (event->motion.state),
970                                      0,                                          (jint)event->motion.x,
971                                      JNI_FALSE);                                          (jint)event->motion.y,
972                                            0,
973                                            JNI_FALSE);
974              gdk_threads_enter ();
975            }
976    
977        break;        break;
978      case GDK_ENTER_NOTIFY:      case GDK_ENTER_NOTIFY:
979        /* We are not interested in enter events that are due to        /* We are not interested in enter events that are due to
980           grab/ungrab and not to actually crossing boundaries */           grab/ungrab and not to actually crossing boundaries */
981        if (event->crossing.mode == GDK_CROSSING_NORMAL)        if (event->crossing.mode == GDK_CROSSING_NORMAL)
982          (*gdk_env())->CallVoidMethod (gdk_env(), peer, postMouseEventID,          {
983                                      AWT_MOUSE_ENTERED,            gdk_threads_leave ();  
984                                      (jlong)event->crossing.time,            (*gdk_env())->CallVoidMethod (gdk_env(), peer, postMouseEventID,
985                                      state_to_awt_mods_with_button_states (event->crossing.state),                                          AWT_MOUSE_ENTERED,
986                                      (jint)event->crossing.x,                                          (jlong)event->crossing.time,
987                                      (jint)event->crossing.y,                                          state_to_awt_mods_with_button_states (event->crossing.state),
988                                      0,                                          (jint)event->crossing.x,
989                                      JNI_FALSE);                                          (jint)event->crossing.y,
990                                            0,
991                                            JNI_FALSE);
992              gdk_threads_enter ();
993            }
994        break;        break;
995      case GDK_LEAVE_NOTIFY:      case GDK_LEAVE_NOTIFY:
996        /* We are not interested in leave events that are due to        /* We are not interested in leave events that are due to
997           grab/ungrab and not to actually crossing boundaries */           grab/ungrab and not to actually crossing boundaries */
998        if (event->crossing.mode == GDK_CROSSING_NORMAL)        if (event->crossing.mode == GDK_CROSSING_NORMAL)
999          (*gdk_env())->CallVoidMethod (gdk_env(), peer,          {
1000                                      postMouseEventID,            gdk_threads_leave ();  
1001                                      AWT_MOUSE_EXITED,            (*gdk_env())->CallVoidMethod (gdk_env(), peer,
1002                                      (jlong)event->crossing.time,                                          postMouseEventID,
1003                                      state_to_awt_mods_with_button_states (event->crossing.state),                                          AWT_MOUSE_EXITED,
1004                                      (jint)event->crossing.x,                                          (jlong)event->crossing.time,
1005                                      (jint)event->crossing.y,                                          state_to_awt_mods_with_button_states (event->crossing.state),
1006                                      0,                                          (jint)event->crossing.x,
1007                                      JNI_FALSE);                                          (jint)event->crossing.y,
1008                                            0,
1009                                            JNI_FALSE);
1010              gdk_threads_enter ();  
1011            }
1012        break;        break;
1013      case GDK_CONFIGURE:      case GDK_CONFIGURE:
1014        {        {
# Line 1012  pre_event_handler (GtkWidget *widget, Gd Line 1033  pre_event_handler (GtkWidget *widget, Gd
1033        }        }
1034        break;        break;
1035      case GDK_EXPOSE:      case GDK_EXPOSE:
1036          gdk_threads_leave ();
1037        (*gdk_env())->CallVoidMethod (gdk_env(), peer,        (*gdk_env())->CallVoidMethod (gdk_env(), peer,
1038                                    postExposeEventID,                                    postExposeEventID,
1039                                    (jint)event->expose.area.x,                                    (jint)event->expose.area.x,
1040                                    (jint)event->expose.area.y,                                    (jint)event->expose.area.y,
1041                                    (jint)event->expose.area.width,                                    (jint)event->expose.area.width,
1042                                    (jint)event->expose.area.height);                                    (jint)event->expose.area.height);
1043          gdk_threads_enter ();
1044        break;        break;
1045    
1046      case GDK_FOCUS_CHANGE:      case GDK_FOCUS_CHANGE:
1047          gdk_threads_leave ();
1048        (*gdk_env())->CallVoidMethod (gdk_env(), peer,        (*gdk_env())->CallVoidMethod (gdk_env(), peer,
1049                                    postFocusEventID,                                    postFocusEventID,
1050                                    (jint) (event->focus_change.in) ?                                    (jint) (event->focus_change.in) ?
1051                                    AWT_FOCUS_GAINED : AWT_FOCUS_LOST,                                    AWT_FOCUS_GAINED : AWT_FOCUS_LOST,
1052                                    JNI_FALSE);                                    JNI_FALSE);
1053          gdk_threads_enter ();
1054        break;        break;
1055      case GDK_KEY_PRESS:      case GDK_KEY_PRESS:
1056          if (GTK_IS_WINDOW (widget))          if (GTK_IS_WINDOW (widget))
# Line 1033  pre_event_handler (GtkWidget *widget, Gd Line 1058  pre_event_handler (GtkWidget *widget, Gd
1058              /*            GdkEventKey *keyevent = (GdkEventKey *) event; */              /*            GdkEventKey *keyevent = (GdkEventKey *) event; */
1059              /*            g_printerr ("key press event: sent: %d  time: %d  state: %d  keyval: %d  length: %d  string: %s  hardware_keycode: %d  group: %d\n", keyevent->send_event, keyevent->time, keyevent->state, keyevent->keyval, keyevent->length, keyevent->string, keyevent->hardware_keycode, keyevent->group); */              /*            g_printerr ("key press event: sent: %d  time: %d  state: %d  keyval: %d  length: %d  string: %s  hardware_keycode: %d  group: %d\n", keyevent->send_event, keyevent->time, keyevent->state, keyevent->keyval, keyevent->length, keyevent->string, keyevent->hardware_keycode, keyevent->group); */
1060    
1061                gdk_threads_leave ();
1062              (*gdk_env())->CallVoidMethod (gdk_env(), peer,              (*gdk_env())->CallVoidMethod (gdk_env(), peer,
1063                                          postKeyEventID,                                          postKeyEventID,
1064                                          (jint) AWT_KEY_PRESSED,                                          (jint) AWT_KEY_PRESSED,
# Line 1041  pre_event_handler (GtkWidget *widget, Gd Line 1067  pre_event_handler (GtkWidget *widget, Gd
1067                                          keysym_to_awt_keycode (event),                                          keysym_to_awt_keycode (event),
1068                                          keyevent_to_awt_keychar (event),                                          keyevent_to_awt_keychar (event),
1069                                          keysym_to_awt_keylocation (event));                                          keysym_to_awt_keylocation (event));
1070                gdk_threads_enter ();
1071              /* FIXME: generation of key typed events needs to be moved              /* FIXME: generation of key typed events needs to be moved
1072                 to GtkComponentPeer.postKeyEvent.  If the key in a key                 to GtkComponentPeer.postKeyEvent.  If the key in a key
1073                 press event is not an "action" key                 press event is not an "action" key
# Line 1054  pre_event_handler (GtkWidget *widget, Gd Line 1081  pre_event_handler (GtkWidget *widget, Gd
1081      case GDK_KEY_RELEASE:      case GDK_KEY_RELEASE:
1082        if (GTK_IS_WINDOW (widget))        if (GTK_IS_WINDOW (widget))
1083          {          {
1084                gdk_threads_leave ();
1085              (*gdk_env())->CallVoidMethod (gdk_env(), peer,              (*gdk_env())->CallVoidMethod (gdk_env(), peer,
1086                                          postKeyEventID,                                          postKeyEventID,
1087                                          (jint) AWT_KEY_RELEASED,                                          (jint) AWT_KEY_RELEASED,
# Line 1062  pre_event_handler (GtkWidget *widget, Gd Line 1090  pre_event_handler (GtkWidget *widget, Gd
1090                                          keysym_to_awt_keycode (event),                                          keysym_to_awt_keycode (event),
1091                                          keyevent_to_awt_keychar (event),                                          keyevent_to_awt_keychar (event),
1092                                          keysym_to_awt_keylocation (event));                                          keysym_to_awt_keylocation (event));
1093                gdk_threads_enter ();
1094              return TRUE;              return TRUE;
1095          }          }
1096        else        else

Legend:
Removed from v.1.32  
changed lines
  Added in v.1.33

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