2002-08-03 Andrew Choi <akochoi@shaw.ca>
* macterm.c (USE_CARBON_EVENTS): New macro.
(macCtrlKey, macShiftKey, macMetaKey, macAltKey): New macros.
(x_iconify_frame): Call CollapseWindow.
(Vmac_reverse_ctrl_meta): New variable.
(Vmac_wheel_button_is_mouse_2): New variable.
(init_mac_drag_n_drop): New function.
(mac_do_receive_drag): New function.
(mac_handle_service_event): New function.
(init_service_handler): New function.
(mac_to_emacs_modifiers): New function.
(mac_event_to_emacs_modifiers): New function.
(mac_get_mouse_btn): New function.
(mac_convert_event_ref): New function.
(XTread_socket) [USE_CARBON_EVENTS]: Call ReceiveNextEvent,
SendEventToEventTarget, mac_event_to_emacs_modifiers, and
mac_get_mouse_btn.
(mac_initialize): Call init_mac_drag_n_drop and
init_service_handler.
* keyboard.c: Define Qmouse_wheel, mouse_wheel_syms, and
lispy_mouse_wheel_names for MAC_OSX as well as for WINDOWS_NT.
(kbd_buffer_get_event): Set used_mouse_menu for MENU_BAR_EVENT and
TOOL_BAR_EVENT for MAC_OS as well.
(make_lispy_event): Handle MOUSE_WHEEL_EVENT for MAC_OSX as well
as for WINDOWS_NT.
(syms_of_keyboard): Initialize Qmouse_wheel for MAC_OSX.
* termhooks.h (event_kind): Define MOUSE_WHEEL_EVENT also for
MAC_OSX.
In lisp:
2002-08-03 Andrew Choi <akochoi@shaw.ca>
* term/mac-win.el: Set keys to enable mouse wheel support.
(scroll_bar_to_top): New.
(scroll_bar_to_bottom): New.
(event_kind): Add HELP_EVENT, TOOLBAR_EVENT.
Some hooks with prototypes.
Add function prototypes.
(which contains Lisp_Objects) in those .c files which need access
to the terminal hooks but don't #include lisp.h (like cm.c), test
to see if the macro CONSP is #defined. We used to test XINT, but
config.h will #define that everywhere on systems that use tailored
tagging schemes.
and triple-click events.
(parse_modifiers_uncached, apply_modifiers_uncached): Same.
(read_key_sequence): Coerce double-clicks to clicks, and triple-clicks
to double-clicks or clicks, by analogy with drag events.
(double_click_time): Added variable.
* termhooks.h: Added multi-click event modifier bits.
case we need them.
* termhooks.h (alt_modifier, super_modifier, hyper_modifier,
shift_modifier, ctrl_modifier, meta_modifier): Define these in
terms of the CHAR_mumble macros, to avoid having the same thing
defined in two places.
Make the modifier manipulation functions more robust. The old way
caused a bug once, and probably would again.
* termhooks.h (alt_modifier, super_modifier, hyper_modifier,
shift_modifier, ctrl_modifier, meta_modifier): Shift these all
down one bit in value, to avoid sign extension problems.
* lisp.h (CHAR_META, CHAR_CTL, CHAR_SHIFT): Fix these definitions too.
* keyboard.c (lispy_modifier_list): Ignore modifier bits beyond
what our table of modifier names can handle.
(apply_modifiers): Don't abort if you see extra modifier bits,
just remove them.