diff options
| author | Eli Zaretskii | 2013-10-08 20:49:20 +0300 |
|---|---|---|
| committer | Eli Zaretskii | 2013-10-08 20:49:20 +0300 |
| commit | 4ed774157d1687cc5236ecaf088dc48442e92431 (patch) | |
| tree | 4dd32cb0104172c6b12f90c2651f58f0040bfe20 /src/ChangeLog | |
| parent | 06286513730d013c2033d1dae892349e5eec98d9 (diff) | |
| parent | f3370a94fd887e9e01db81a86e42036d12dcda9b (diff) | |
| download | emacs-4ed774157d1687cc5236ecaf088dc48442e92431.tar.gz emacs-4ed774157d1687cc5236ecaf088dc48442e92431.zip | |
Support menus on text-mode terminals.
src/xterm.h (xw_popup_dialog): Add prototype.
src/xmenu.c (Fx_popup_dialog): Function moved to menu.c.
(xmenu_show): Block input here, instead in Fx_popup_menu.
(xw_popup_dialog): New function, with X-specific bits of popup
dialogs.
src/xdisp.c (deep_copy_glyph_row, display_tty_menu_item): New
functions.
src/window.c (Fset_window_configuration): Use run-time tests of the
frame type instead of compile-time conditionals, when menu-bar
lines are considered.
src/w32term.h (w32con_hide_cursor, w32con_show_cursor)
(w32_popup_dialog): New prototypes.
src/w32menu.c (Fx_popup_dialog): Function deleted.
(w32_popup_dialog): New function, with w32 specific bits of popup
dialogs. Block input here.
src/w32inevt.c (w32_console_read_socket): Minor change to add
debugging TTY events.
src/w32fns.c (show_hourglass): If returning early because the frame
is not a GUI frame, unblock input.
src/w32console.c (w32con_hide_cursor, w32con_show_cursor, cursorX)
(cursorY): New functions.
src/termhooks.h (cursorX, cursorY): Prototypes of functions on
WINDOWSNT, macros that call curX and curY elsewhere.
src/termchar.h (struct tty_display_info) <showing_menu>: New flag.
src/term.c (tty_hide_cursor, tty_show_cursor) [WINDOWSNT]: Call w32
specific function to hide and show cursor on a text-mode terminal.
(tty_menu_struct, struct tty_menu_state): New structures.
(tty_menu_create, tty_menu_make_room, tty_menu_search_pane)
(tty_menu_calc_size, mouse_get_xy, tty_menu_display)
(have_menus_p, tty_menu_add_pane, tty_menu_add_selection)
(tty_menu_locate, save_and_enable_current_matrix)
(restore_desired_matrix, screen_update, read_menu_input)
(tty_menu_activate, tty_menu_destroy, tty_menu_help_callback)
(tty_pop_down_menu, tty_menu_last_menubar_item)
(tty_menu_new_item_coords, tty_menu_show): New functions.
(syms_of_term): New DEFSYMs for tty-menu-* symbols.
src/nsterm.h (ns_popup_dialog): Adjust prototype.
src/nsmenu.m (ns_menu_show): Block and unblock input here, instead
of in x-popup-menu.
(ns_popup_dialog): Adapt order of arguments to the other
*_menu_show implementations.
(Fx_popup_dialog): Function deleted.
src/msdos.c (x_set_menu_bar_lines): Delete unused function.
src/menu.h (tty_menu_show, menu_item_width): provide prototypes.
src/menu.c (have_boxes): New function.
(single_keymap_panes): Use it instead of a compile-time
conditional.
(single_menu_item): Use run-time tests of the frame type instead
of compile-time conditionals.
(encode_menu_string): New function.
(list_of_items, list_of_panes): Use it instead of ENCODE_STRING
the macro, since different types of frame need different encoding
of menu items.
(digest_single_submenu): Use run-time tests of frame type instead
of, or in addition to, compile-time conditionals.
(menu_item_width, Fmenu_bar_menu_at_x_y): New functions.
(Fx_popup_menu): Detect when the function is called from keyboard
on a TTY. Don't barf when invoked on a text-mode frame. Check
frame type at run time, instead of compile-time conditionals for
invoking terminal-specific menu-show functions. Call
tty_menu_show on text-mode frames.
(Fx_popup_dialog): Moved here from xmenu.c. Test frame types at
run time to determine which alternative to invoke; support dialogs
on TTYs.
src/keyboard.h <Qmouse_movement>: Declare.
src/keyboard.c <Qmouse_movement>: Now extern.
<Qecho_keystrokes>: New static variable.
(read_key_sequence): Accept an additional argument, a flag to
prevent redisplay during reading of the key sequence. All callers
changed.
(read_menu_command): New function.
(read_char): When COMMANDFLAG is -2, do not redisplay and do not
autosave.
(toolkit_menubar_in_use): New function.
(make_lispy_event): Use it instead of a compile-time test.
src/fns.c (Fyes_or_no_p) [HAVE_MENUS]: Don't condition on
window-system being available.
src/editfns.c (Fmessage_box) [HAVE_MENUS]: Don't condition the call
to x-popup-dialog on the frame type, they all now support popup
dialogs.
src/dispnew.c (save_current_matrix): Save the margin areas.
(restore_current_matrix): Restore margin areas.
(update_frame_with_menu): New function.
src/dispextern.h (display_tty_menu_item, update_frame_with_menu):
Add prototypes.
src/alloc.c (make_save_ptr): Now compiled unconditionally.
lisp/tmm.el (tmm-menubar): Adapt doc string to TTY menus
functionality.
lisp/tooltip.el (tooltip-mode): Don't error out on TTYs.
lisp/menu-bar.el (popup-menu, popup-menu-normalize-position): Moved
here from mouse.el.
(popup-menu): Support menu-bar navigation on TTYs using C-f/C-b
and arrow keys.
(tty-menu-navigation-map): New map for TTY menu navigation.
lisp/loadup.el ("tooltip"): Load even if x-show-tip is not available.
lisp/frame.el (display-mouse-p): Report text-mode mouse as available
on w32.
(display-popup-menus-p): Report availability if mouse is
available; don't condition on window-system.
lisp/faces.el (tty-menu-enabled-face, tty-menu-disabled-face)
(tty-menu-selected-face): New faces.
configure.ac (HAVE_MENUS): Define unconditionally.
doc/emacs/screen.texi (Menu Bar): Adapt to TTY menus.
doc/emacs/frames.texi (Frames): Mention menu support on text terminals.
doc/emacs/files.texi (Visiting): Mention the "File" menu-bar menu.
doc/emacs/display.texi (Standard Faces): Mention TTY faces for menus.
doc/lispref/keymaps.texi (Defining Menus, Mouse Menus, Menu Bar): Modify
wording to the effect that menus are supported on TTYs.
doc/lisprefframes.texi (Pop-Up Menus, Dialog Boxes)
(Display Feature Testing): Update for menu support on TTYs.
etc/NEWS: Mention the new features.
Diffstat (limited to 'src/ChangeLog')
| -rw-r--r-- | src/ChangeLog | 113 |
1 files changed, 113 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index fc2f7a9d57c..e30194d1dfb 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,116 @@ | |||
| 1 | 2013-10-08 Eli Zaretskii <eliz@gnu.org> | ||
| 2 | |||
| 3 | Support menus on text-mode terminals. | ||
| 4 | * xterm.h (xw_popup_dialog): Add prototype. | ||
| 5 | |||
| 6 | * xmenu.c (Fx_popup_dialog): Function moved to menu.c. | ||
| 7 | (xmenu_show): Block input here, instead in Fx_popup_menu. | ||
| 8 | (xw_popup_dialog): New function, with X-specific bits of popup | ||
| 9 | dialogs. | ||
| 10 | |||
| 11 | * xdisp.c (deep_copy_glyph_row, display_tty_menu_item): New | ||
| 12 | functions. | ||
| 13 | |||
| 14 | * window.c (Fset_window_configuration): Use run-time tests of the | ||
| 15 | frame type instead of compile-time conditionals, when menu-bar | ||
| 16 | lines are considered. | ||
| 17 | |||
| 18 | * w32term.h (w32con_hide_cursor, w32con_show_cursor) | ||
| 19 | (w32_popup_dialog): New prototypes. | ||
| 20 | |||
| 21 | * w32menu.c (Fx_popup_dialog): Function deleted. | ||
| 22 | (w32_popup_dialog): New function, with w32 specific bits of popup | ||
| 23 | dialogs. Block input here. | ||
| 24 | |||
| 25 | * w32inevt.c (w32_console_read_socket): Minor change to add | ||
| 26 | debugging TTY events. | ||
| 27 | |||
| 28 | * w32fns.c (show_hourglass): If returning early because the frame | ||
| 29 | is not a GUI frame, unblock input. | ||
| 30 | |||
| 31 | * w32console.c (w32con_hide_cursor, w32con_show_cursor, cursorX) | ||
| 32 | (cursorY): New functions. | ||
| 33 | |||
| 34 | * termhooks.h (cursorX, cursorY): Prototypes of functions on | ||
| 35 | WINDOWSNT, macros that call curX and curY elsewhere. | ||
| 36 | |||
| 37 | * termchar.h (struct tty_display_info) <showing_menu>: New flag. | ||
| 38 | |||
| 39 | * term.c (tty_hide_cursor, tty_show_cursor) [WINDOWSNT]: Call w32 | ||
| 40 | specific function to hide and show cursor on a text-mode terminal. | ||
| 41 | (tty_menu_struct, struct tty_menu_state): New structures. | ||
| 42 | (tty_menu_create, tty_menu_make_room, tty_menu_search_pane) | ||
| 43 | (tty_menu_calc_size, mouse_get_xy, tty_menu_display) | ||
| 44 | (have_menus_p, tty_menu_add_pane, tty_menu_add_selection) | ||
| 45 | (tty_menu_locate, save_and_enable_current_matrix) | ||
| 46 | (restore_desired_matrix, screen_update, read_menu_input) | ||
| 47 | (tty_menu_activate, tty_menu_destroy, tty_menu_help_callback) | ||
| 48 | (tty_pop_down_menu, tty_menu_last_menubar_item) | ||
| 49 | (tty_menu_new_item_coords, tty_menu_show): New functions. | ||
| 50 | (syms_of_term): New DEFSYMs for tty-menu-* symbols. | ||
| 51 | |||
| 52 | * nsterm.h (ns_popup_dialog): Adjust prototype. | ||
| 53 | |||
| 54 | * nsmenu.m (ns_menu_show): Block and unblock input here, instead | ||
| 55 | of in x-popup-menu. | ||
| 56 | (ns_popup_dialog): Adapt order of arguments to the other | ||
| 57 | *_menu_show implementations. | ||
| 58 | (Fx_popup_dialog): Function deleted. | ||
| 59 | |||
| 60 | * msdos.c (x_set_menu_bar_lines): Delete unused function. | ||
| 61 | |||
| 62 | * menu.h (tty_menu_show, menu_item_width): provide prototypes. | ||
| 63 | |||
| 64 | * menu.c (have_boxes): New function. | ||
| 65 | (single_keymap_panes): Use it instead of a compile-time | ||
| 66 | conditional. | ||
| 67 | (single_menu_item): Use run-time tests of the frame type instead | ||
| 68 | of compile-time conditionals. | ||
| 69 | (encode_menu_string): New function. | ||
| 70 | (list_of_items, list_of_panes): Use it instead of ENCODE_STRING | ||
| 71 | the macro, since different types of frame need different encoding | ||
| 72 | of menu items. | ||
| 73 | (digest_single_submenu): Use run-time tests of frame type instead | ||
| 74 | of, or in addition to, compile-time conditionals. | ||
| 75 | (menu_item_width, Fmenu_bar_menu_at_x_y): New functions. | ||
| 76 | (Fx_popup_menu): Detect when the function is called from keyboard | ||
| 77 | on a TTY. Don't barf when invoked on a text-mode frame. Check | ||
| 78 | frame type at run time, instead of compile-time conditionals for | ||
| 79 | invoking terminal-specific menu-show functions. Call | ||
| 80 | tty_menu_show on text-mode frames. | ||
| 81 | (Fx_popup_dialog): Moved here from xmenu.c. Test frame types at | ||
| 82 | run time to determine which alternative to invoke; support dialogs | ||
| 83 | on TTYs. | ||
| 84 | |||
| 85 | * keyboard.h <Qmouse_movement>: Declare. | ||
| 86 | |||
| 87 | * keyboard.c <Qmouse_movement>: Now extern. | ||
| 88 | <Qecho_keystrokes>: New static variable. | ||
| 89 | (read_key_sequence): Accept an additional argument, a flag to | ||
| 90 | prevent redisplay during reading of the key sequence. All callers | ||
| 91 | changed. | ||
| 92 | (read_menu_command): New function. | ||
| 93 | (read_char): When COMMANDFLAG is -2, do not redisplay and do not | ||
| 94 | autosave. | ||
| 95 | (toolkit_menubar_in_use): New function. | ||
| 96 | (make_lispy_event): Use it instead of a compile-time test. | ||
| 97 | |||
| 98 | * fns.c (Fyes_or_no_p) [HAVE_MENUS]: Don't condition on | ||
| 99 | window-system being available. | ||
| 100 | |||
| 101 | * editfns.c (Fmessage_box) [HAVE_MENUS]: Don't condition the call | ||
| 102 | to x-popup-dialog on the frame type, they all now support popup | ||
| 103 | dialogs. | ||
| 104 | |||
| 105 | * dispnew.c (save_current_matrix): Save the margin areas. | ||
| 106 | (restore_current_matrix): Restore margin areas. | ||
| 107 | (update_frame_with_menu): New function. | ||
| 108 | |||
| 109 | * dispextern.h (display_tty_menu_item, update_frame_with_menu): | ||
| 110 | Add prototypes. | ||
| 111 | |||
| 112 | * alloc.c (make_save_ptr): Now compiled unconditionally. | ||
| 113 | |||
| 1 | 2013-10-08 Dmitry Antipov <dmantipov@yandex.ru> | 114 | 2013-10-08 Dmitry Antipov <dmantipov@yandex.ru> |
| 2 | 115 | ||
| 3 | * dispnew.c (set_window_update_flags): Add buffer arg. Adjust comment. | 116 | * dispnew.c (set_window_update_flags): Add buffer arg. Adjust comment. |