diff options
| author | Stefan Monnier | 2018-01-11 22:20:05 -0500 |
|---|---|---|
| committer | Stefan Monnier | 2018-01-12 23:40:35 -0500 |
| commit | 70e4bb394f36940c4b72cd87d298d9cdabff5998 (patch) | |
| tree | c7ee8782317d5da3bf53956be480baceff624471 | |
| parent | 0aec5b8a5607505c1b492c10b67214f52f33972a (diff) | |
| download | emacs-70e4bb394f36940c4b72cd87d298d9cdabff5998.tar.gz emacs-70e4bb394f36940c4b72cd87d298d9cdabff5998.zip | |
* src/keyboard.c (kbd_buffer_get_event): Use 'switch' ...
...rather than a sequence of else-if.
| -rw-r--r-- | src/keyboard.c | 67 |
1 files changed, 45 insertions, 22 deletions
diff --git a/src/keyboard.c b/src/keyboard.c index 714c8fee656..8e3f0e18c01 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -3873,8 +3873,10 @@ kbd_buffer_get_event (KBOARD **kbp, | |||
| 3873 | /* These two kinds of events get special handling | 3873 | /* These two kinds of events get special handling |
| 3874 | and don't actually appear to the command loop. | 3874 | and don't actually appear to the command loop. |
| 3875 | We return nil for them. */ | 3875 | We return nil for them. */ |
| 3876 | if (event->kind == SELECTION_REQUEST_EVENT | 3876 | switch (event->kind) |
| 3877 | || event->kind == SELECTION_CLEAR_EVENT) | 3877 | { |
| 3878 | case SELECTION_REQUEST_EVENT: | ||
| 3879 | case SELECTION_CLEAR_EVENT: | ||
| 3878 | { | 3880 | { |
| 3879 | #ifdef HAVE_X11 | 3881 | #ifdef HAVE_X11 |
| 3880 | /* Remove it from the buffer before processing it, | 3882 | /* Remove it from the buffer before processing it, |
| @@ -3890,9 +3892,10 @@ kbd_buffer_get_event (KBOARD **kbp, | |||
| 3890 | emacs_abort (); | 3892 | emacs_abort (); |
| 3891 | #endif | 3893 | #endif |
| 3892 | } | 3894 | } |
| 3895 | break; | ||
| 3893 | 3896 | ||
| 3894 | #if defined (HAVE_NS) | 3897 | #if defined (HAVE_NS) |
| 3895 | else if (event->kind == NS_TEXT_EVENT) | 3898 | case NS_TEXT_EVENT: |
| 3896 | { | 3899 | { |
| 3897 | if (event->ie.code == KEY_NS_PUT_WORKING_TEXT) | 3900 | if (event->ie.code == KEY_NS_PUT_WORKING_TEXT) |
| 3898 | obj = list1 (intern ("ns-put-working-text")); | 3901 | obj = list1 (intern ("ns-put-working-text")); |
| @@ -3902,60 +3905,67 @@ kbd_buffer_get_event (KBOARD **kbp, | |||
| 3902 | if (used_mouse_menu) | 3905 | if (used_mouse_menu) |
| 3903 | *used_mouse_menu = true; | 3906 | *used_mouse_menu = true; |
| 3904 | } | 3907 | } |
| 3908 | break; | ||
| 3905 | #endif | 3909 | #endif |
| 3906 | 3910 | ||
| 3907 | #if defined (HAVE_X11) || defined (HAVE_NTGUI) \ | 3911 | #if defined (HAVE_X11) || defined (HAVE_NTGUI) \ |
| 3908 | || defined (HAVE_NS) | 3912 | || defined (HAVE_NS) |
| 3909 | else if (event->kind == DELETE_WINDOW_EVENT) | 3913 | case DELETE_WINDOW_EVENT: |
| 3910 | { | 3914 | { |
| 3911 | /* Make an event (delete-frame (FRAME)). */ | 3915 | /* Make an event (delete-frame (FRAME)). */ |
| 3912 | obj = list2 (Qdelete_frame, list1 (event->ie.frame_or_window)); | 3916 | obj = list2 (Qdelete_frame, list1 (event->ie.frame_or_window)); |
| 3913 | kbd_fetch_ptr = event + 1; | 3917 | kbd_fetch_ptr = event + 1; |
| 3914 | } | 3918 | } |
| 3919 | break; | ||
| 3915 | #endif | 3920 | #endif |
| 3916 | 3921 | ||
| 3917 | #ifdef HAVE_NTGUI | 3922 | #ifdef HAVE_NTGUI |
| 3918 | else if (event->kind == END_SESSION_EVENT) | 3923 | case END_SESSION_EVENT: |
| 3919 | { | 3924 | { |
| 3920 | /* Make an event (end-session). */ | 3925 | /* Make an event (end-session). */ |
| 3921 | obj = list1 (Qend_session); | 3926 | obj = list1 (Qend_session); |
| 3922 | kbd_fetch_ptr = event + 1; | 3927 | kbd_fetch_ptr = event + 1; |
| 3923 | } | 3928 | } |
| 3929 | break; | ||
| 3924 | #endif | 3930 | #endif |
| 3925 | 3931 | ||
| 3926 | #if defined (HAVE_X11) || defined (HAVE_NTGUI) \ | 3932 | #if defined (HAVE_X11) || defined (HAVE_NTGUI) \ |
| 3927 | || defined (HAVE_NS) | 3933 | || defined (HAVE_NS) |
| 3928 | else if (event->kind == ICONIFY_EVENT) | 3934 | case ICONIFY_EVENT: |
| 3929 | { | 3935 | { |
| 3930 | /* Make an event (iconify-frame (FRAME)). */ | 3936 | /* Make an event (iconify-frame (FRAME)). */ |
| 3931 | obj = list2 (Qiconify_frame, list1 (event->ie.frame_or_window)); | 3937 | obj = list2 (Qiconify_frame, list1 (event->ie.frame_or_window)); |
| 3932 | kbd_fetch_ptr = event + 1; | 3938 | kbd_fetch_ptr = event + 1; |
| 3933 | } | 3939 | } |
| 3934 | else if (event->kind == DEICONIFY_EVENT) | 3940 | break; |
| 3941 | case DEICONIFY_EVENT: | ||
| 3935 | { | 3942 | { |
| 3936 | /* Make an event (make-frame-visible (FRAME)). */ | 3943 | /* Make an event (make-frame-visible (FRAME)). */ |
| 3937 | obj = list2 (Qmake_frame_visible, list1 (event->ie.frame_or_window)); | 3944 | obj = list2 (Qmake_frame_visible, list1 (event->ie.frame_or_window)); |
| 3938 | kbd_fetch_ptr = event + 1; | 3945 | kbd_fetch_ptr = event + 1; |
| 3939 | } | 3946 | } |
| 3947 | break; | ||
| 3940 | #endif | 3948 | #endif |
| 3941 | else if (event->kind == BUFFER_SWITCH_EVENT) | 3949 | case BUFFER_SWITCH_EVENT: |
| 3942 | { | 3950 | { |
| 3943 | /* The value doesn't matter here; only the type is tested. */ | 3951 | /* The value doesn't matter here; only the type is tested. */ |
| 3944 | XSETBUFFER (obj, current_buffer); | 3952 | XSETBUFFER (obj, current_buffer); |
| 3945 | kbd_fetch_ptr = event + 1; | 3953 | kbd_fetch_ptr = event + 1; |
| 3946 | } | 3954 | } |
| 3955 | break; | ||
| 3947 | #if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \ | 3956 | #if defined (USE_X_TOOLKIT) || defined (HAVE_NTGUI) \ |
| 3948 | || defined (HAVE_NS) || defined (USE_GTK) | 3957 | || defined (HAVE_NS) || defined (USE_GTK) |
| 3949 | else if (event->kind == MENU_BAR_ACTIVATE_EVENT) | 3958 | case MENU_BAR_ACTIVATE_EVENT: |
| 3950 | { | 3959 | { |
| 3951 | kbd_fetch_ptr = event + 1; | 3960 | kbd_fetch_ptr = event + 1; |
| 3952 | input_pending = readable_events (0); | 3961 | input_pending = readable_events (0); |
| 3953 | if (FRAME_LIVE_P (XFRAME (event->ie.frame_or_window))) | 3962 | if (FRAME_LIVE_P (XFRAME (event->ie.frame_or_window))) |
| 3954 | x_activate_menubar (XFRAME (event->ie.frame_or_window)); | 3963 | x_activate_menubar (XFRAME (event->ie.frame_or_window)); |
| 3955 | } | 3964 | } |
| 3965 | break; | ||
| 3956 | #endif | 3966 | #endif |
| 3957 | #ifdef HAVE_NTGUI | 3967 | #ifdef HAVE_NTGUI |
| 3958 | else if (event->kind == LANGUAGE_CHANGE_EVENT) | 3968 | case LANGUAGE_CHANGE_EVENT: |
| 3959 | { | 3969 | { |
| 3960 | /* Make an event (language-change FRAME CODEPAGE LANGUAGE-ID). */ | 3970 | /* Make an event (language-change FRAME CODEPAGE LANGUAGE-ID). */ |
| 3961 | obj = list4 (Qlanguage_change, | 3971 | obj = list4 (Qlanguage_change, |
| @@ -3964,9 +3974,10 @@ kbd_buffer_get_event (KBOARD **kbp, | |||
| 3964 | make_number (event->ie.modifiers)); | 3974 | make_number (event->ie.modifiers)); |
| 3965 | kbd_fetch_ptr = event + 1; | 3975 | kbd_fetch_ptr = event + 1; |
| 3966 | } | 3976 | } |
| 3977 | break; | ||
| 3967 | #endif | 3978 | #endif |
| 3968 | #ifdef USE_FILE_NOTIFY | 3979 | #ifdef USE_FILE_NOTIFY |
| 3969 | else if (event->kind == FILE_NOTIFY_EVENT) | 3980 | case FILE_NOTIFY_EVENT: |
| 3970 | { | 3981 | { |
| 3971 | #ifdef HAVE_W32NOTIFY | 3982 | #ifdef HAVE_W32NOTIFY |
| 3972 | /* Make an event (file-notify (DESCRIPTOR ACTION FILE) CALLBACK). */ | 3983 | /* Make an event (file-notify (DESCRIPTOR ACTION FILE) CALLBACK). */ |
| @@ -3976,12 +3987,14 @@ kbd_buffer_get_event (KBOARD **kbp, | |||
| 3976 | #endif | 3987 | #endif |
| 3977 | kbd_fetch_ptr = event + 1; | 3988 | kbd_fetch_ptr = event + 1; |
| 3978 | } | 3989 | } |
| 3990 | break; | ||
| 3979 | #endif /* USE_FILE_NOTIFY */ | 3991 | #endif /* USE_FILE_NOTIFY */ |
| 3980 | else if (event->kind == SAVE_SESSION_EVENT) | 3992 | case SAVE_SESSION_EVENT: |
| 3981 | { | 3993 | { |
| 3982 | obj = list2 (Qsave_session, event->ie.arg); | 3994 | obj = list2 (Qsave_session, event->ie.arg); |
| 3983 | kbd_fetch_ptr = event + 1; | 3995 | kbd_fetch_ptr = event + 1; |
| 3984 | } | 3996 | } |
| 3997 | break; | ||
| 3985 | /* Just discard these, by returning nil. | 3998 | /* Just discard these, by returning nil. |
| 3986 | With MULTI_KBOARD, these events are used as placeholders | 3999 | With MULTI_KBOARD, these events are used as placeholders |
| 3987 | when we need to randomly delete events from the queue. | 4000 | when we need to randomly delete events from the queue. |
| @@ -3990,9 +4003,10 @@ kbd_buffer_get_event (KBOARD **kbp, | |||
| 3990 | even without MULTI_KBOARD.) */ | 4003 | even without MULTI_KBOARD.) */ |
| 3991 | /* On Windows NT/9X, NO_EVENT is used to delete extraneous | 4004 | /* On Windows NT/9X, NO_EVENT is used to delete extraneous |
| 3992 | mouse events during a popup-menu call. */ | 4005 | mouse events during a popup-menu call. */ |
| 3993 | else if (event->kind == NO_EVENT) | 4006 | case NO_EVENT: |
| 3994 | kbd_fetch_ptr = event + 1; | 4007 | kbd_fetch_ptr = event + 1; |
| 3995 | else if (event->kind == HELP_EVENT) | 4008 | break; |
| 4009 | case HELP_EVENT: | ||
| 3996 | { | 4010 | { |
| 3997 | Lisp_Object object, position, help, frame, window; | 4011 | Lisp_Object object, position, help, frame, window; |
| 3998 | 4012 | ||
| @@ -4009,7 +4023,8 @@ kbd_buffer_get_event (KBOARD **kbp, | |||
| 4009 | obj = Fcons (Qhelp_echo, | 4023 | obj = Fcons (Qhelp_echo, |
| 4010 | list5 (frame, help, window, object, position)); | 4024 | list5 (frame, help, window, object, position)); |
| 4011 | } | 4025 | } |
| 4012 | else if (event->kind == FOCUS_IN_EVENT) | 4026 | break; |
| 4027 | case FOCUS_IN_EVENT: | ||
| 4013 | { | 4028 | { |
| 4014 | /* Notification of a FocusIn event. The frame receiving the | 4029 | /* Notification of a FocusIn event. The frame receiving the |
| 4015 | focus is in event->frame_or_window. Generate a | 4030 | focus is in event->frame_or_window. Generate a |
| @@ -4035,7 +4050,8 @@ kbd_buffer_get_event (KBOARD **kbp, | |||
| 4035 | internal_last_event_frame = frame; | 4050 | internal_last_event_frame = frame; |
| 4036 | kbd_fetch_ptr = event + 1; | 4051 | kbd_fetch_ptr = event + 1; |
| 4037 | } | 4052 | } |
| 4038 | else if (event->kind == FOCUS_OUT_EVENT) | 4053 | break; |
| 4054 | case FOCUS_OUT_EVENT: | ||
| 4039 | { | 4055 | { |
| 4040 | #ifdef HAVE_WINDOW_SYSTEM | 4056 | #ifdef HAVE_WINDOW_SYSTEM |
| 4041 | 4057 | ||
| @@ -4053,39 +4069,45 @@ kbd_buffer_get_event (KBOARD **kbp, | |||
| 4053 | 4069 | ||
| 4054 | kbd_fetch_ptr = event + 1; | 4070 | kbd_fetch_ptr = event + 1; |
| 4055 | } | 4071 | } |
| 4072 | break; | ||
| 4056 | #ifdef HAVE_DBUS | 4073 | #ifdef HAVE_DBUS |
| 4057 | else if (event->kind == DBUS_EVENT) | 4074 | case DBUS_EVENT: |
| 4058 | { | 4075 | { |
| 4059 | obj = make_lispy_event (&event->ie); | 4076 | obj = make_lispy_event (&event->ie); |
| 4060 | kbd_fetch_ptr = event + 1; | 4077 | kbd_fetch_ptr = event + 1; |
| 4061 | } | 4078 | } |
| 4079 | break; | ||
| 4062 | #endif | 4080 | #endif |
| 4063 | #if defined (HAVE_X11) || defined (HAVE_NTGUI) || defined (HAVE_NS) | 4081 | #if defined (HAVE_X11) || defined (HAVE_NTGUI) || defined (HAVE_NS) |
| 4064 | else if (event->kind == MOVE_FRAME_EVENT) | 4082 | case MOVE_FRAME_EVENT: |
| 4065 | { | 4083 | { |
| 4066 | /* Make an event (move-frame (FRAME)). */ | 4084 | /* Make an event (move-frame (FRAME)). */ |
| 4067 | obj = list2 (Qmove_frame, list1 (event->ie.frame_or_window)); | 4085 | obj = list2 (Qmove_frame, list1 (event->ie.frame_or_window)); |
| 4068 | kbd_fetch_ptr = event + 1; | 4086 | kbd_fetch_ptr = event + 1; |
| 4069 | } | 4087 | } |
| 4088 | break; | ||
| 4070 | #endif | 4089 | #endif |
| 4071 | #ifdef HAVE_XWIDGETS | 4090 | #ifdef HAVE_XWIDGETS |
| 4072 | else if (event->kind == XWIDGET_EVENT) | 4091 | case XWIDGET_EVENT: |
| 4073 | { | 4092 | { |
| 4074 | obj = make_lispy_event (&event->ie); | 4093 | obj = make_lispy_event (&event->ie); |
| 4075 | kbd_fetch_ptr = event + 1; | 4094 | kbd_fetch_ptr = event + 1; |
| 4076 | } | 4095 | } |
| 4096 | break; | ||
| 4077 | #endif | 4097 | #endif |
| 4078 | else if (event->kind == CONFIG_CHANGED_EVENT) | 4098 | case CONFIG_CHANGED_EVENT: |
| 4079 | { | 4099 | { |
| 4080 | obj = make_lispy_event (&event->ie); | 4100 | obj = make_lispy_event (&event->ie); |
| 4081 | kbd_fetch_ptr = event + 1; | 4101 | kbd_fetch_ptr = event + 1; |
| 4082 | } | 4102 | } |
| 4083 | else if (event->kind == SELECT_WINDOW_EVENT) | 4103 | break; |
| 4104 | case SELECT_WINDOW_EVENT: | ||
| 4084 | { | 4105 | { |
| 4085 | obj = list2 (Qselect_window, list1 (event->ie.frame_or_window)); | 4106 | obj = list2 (Qselect_window, list1 (event->ie.frame_or_window)); |
| 4086 | kbd_fetch_ptr = event + 1; | 4107 | kbd_fetch_ptr = event + 1; |
| 4087 | } | 4108 | } |
| 4088 | else | 4109 | break; |
| 4110 | default: | ||
| 4089 | { | 4111 | { |
| 4090 | /* If this event is on a different frame, return a switch-frame this | 4112 | /* If this event is on a different frame, return a switch-frame this |
| 4091 | time, and leave the event in the queue for next time. */ | 4113 | time, and leave the event in the queue for next time. */ |
| @@ -4139,6 +4161,7 @@ kbd_buffer_get_event (KBOARD **kbp, | |||
| 4139 | kbd_fetch_ptr = event + 1; | 4161 | kbd_fetch_ptr = event + 1; |
| 4140 | } | 4162 | } |
| 4141 | } | 4163 | } |
| 4164 | } | ||
| 4142 | } | 4165 | } |
| 4143 | /* Try generating a mouse motion event. */ | 4166 | /* Try generating a mouse motion event. */ |
| 4144 | else if (!NILP (do_mouse_tracking) && some_mouse_moved ()) | 4167 | else if (!NILP (do_mouse_tracking) && some_mouse_moved ()) |