Support X clipboard managers.
authorChong Yidong <cyd@stupidchicken.com>
Fri, 27 May 2011 16:17:59 +0000 (12:17 -0400)
committerChong Yidong <cyd@stupidchicken.com>
Fri, 27 May 2011 16:17:59 +0000 (12:17 -0400)
commita9f737eef69ffe03dd045df555300ae6b41d0edf
tree515b335a2f07a324ecc71b6a9331b7e0bc712586
parentbe520aca79dd429d55012a1916bdc97f06773fc5
Support X clipboard managers.

* lisp/select.el (xselect-convert-to-targets): Add MULTIPLE target to list.
(xselect-convert-to-save-targets): New function.

* src/xselect.c: Support for clipboard managers.
(Vselection_alist): Move to termhooks.h as terminal-local var.
(LOCAL_SELECTION): New macro.
(x_atom_to_symbol): Handle x_display_info_for_display fail case.
(symbol_to_x_atom): Remove gratuitous arg.
(x_handle_selection_request, lisp_data_to_selection_data)
(x_get_foreign_selection, Fx_register_dnd_atom): Callers changed.
(x_own_selection, x_get_local_selection, x_convert_selection): New
arg, specifying work frame.  Use terminal-local Vselection_alist.
(some_frame_on_display): Delete unused function.
(Fx_own_selection_internal, Fx_get_selection_internal)
(Fx_disown_selection_internal, Fx_selection_owner_p)
(Fx_selection_exists_p): New optional frame arg.
(frame_for_x_selection, Fx_clipboard_manager_save): New functions.
(x_handle_selection_clear): Don't treat other terminals with the
same keyboard specially.  Use the terminal-local Vselection_alist.
(x_clear_frame_selections): Use Frun_hook_with_args.

* src/termhooks.h (Vselection_alist): Make it terminal-local.

* src/terminal.c (create_terminal): Initialize it.

* src/xterm.c (x_term_init): Intern ATOM and CLIPBOARD_MANAGER atoms.

* src/xterm.h: Add support for those atoms.
lisp/ChangeLog
lisp/select.el
src/ChangeLog
src/termhooks.h
src/terminal.c
src/xselect.c
src/xterm.c
src/xterm.h