The validation of the event type was too strict as it didn't
allow string events; buffer names are used in bindings for
menu-bar-select-buffer (see `menu-bar-update-buffers').
added command remapping by entering the commands directly into
the keymaps. Now, command remapping uses an explicit `remap'
prefix in the keymaps, i.e. [remap COMMAND].
(Qremap, remap_command_vector): New variables.
(is_command_symbol): Removed function.
(Fdefine_key): No longer accept a symbol for KEY. Added
validation of [remap COMMAND] argument for KEY. The DEF is no
longer required to be a symbol when remapping a command.
(Fremap_command): New function to remap command through keymaps.
(Flookup_key): Perform command remapping initiated by
Fremap_command directly for speed.
(Fkey_binding): Use Fremap_command for command remapping.
(where_is_internal): Handle new command remapping representation.
(syms_of_keymap): Intern Qremap, initialize remap_command_vector,
staticpro them. Defsubr Fremap_command.
(menu_free_timer): New variable.
(MENU_FREE_ID, MENU_FREE_DELAY): New constants.
(w32_wnd_proc) <WM_TIMER>: Handle menu_free_timer.
<WM_EXITMENULOOP>: Delay before freeing menu. Do nothing if a
menu command is in progress.
<WM_COMMAND>: Set the menu_command_in_progress flag. Kill
any menu_free_timer that is running.
(syms_of_xselect): Intern and staticpro it.
(selection_data_to_lisp_data): Run post-read-conversion on decoded
selection text.
(lisp_data_to_selection_data): If next-selection-coding-system is
compound-text-with-extensions, set the type of selection to be
compound-text.
bindings at PT when building menu (the menu is not updated often
enough for this to work reliable).
(tool_bar_items): Likewise.
(current_active_maps): Removed unused (and faulty) function.
(syms_of_w32term): DEFVAR_BOOL and initialize it.
(note_mouse_movement): Use it.
* w32term.c (x_check_fullscreen, x_check_fullscreen_move)
(x_fullscreen_adjust): New functions.
(w32_read_socket) <WM_WINDOWPOSCHANGED>: Don't resize to
fullscreen. Call x_check_fullscreen_move, and set the
want_fullscreen member of output_data.w32
<WM_ACTIVATE, WM_ACTIVATEAPP>: Call x_check_fullscreen.
(struct w32_output): New members want_fullscreen, x_pixels_diff,
y_pixels_diff, x_pixels_outer_diff, and y_pixels_outer_diff.
(x-fullscreen-adjust): New prototype.
(note_mouse_highlight): Disable highlight if Vmouse_highlight is nil.
(show_mouse_face): Don't show highlight if mouse_face_hidden is set.
(w32_read_socket): Turn mouse_face_hidden off after mouse movement,
and on after keyboard input.
(w32_initialize_display_info): Initialize mouse_face_hidden.
(show_mouse_face): Don't show highlight if mouse_face_hidden is set.
(IT_note_mouse_highlight): Don't highlight if Vmouse_highlight is nil.
(internal_terminal_init): Initialize mouse_face_hidden.
(dos_rawgetc): Turn mouse_face_hidden off after mouse movement,
and on after keyboard input.
(note_mouse_highlight): Don't highlight if Vmouse_highlight is nil.
(show_mouse_face): Don't show highlight if mouse_face_hidden is set.
(XTread_socket): Turn mouse_face_hidden off after mouse movement,
and on after keyboard input.
(x_term_init): Initialize mouse_face_hidden.