Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Выборы, буферы обмена и перетаскивание — это механизмы, используемые в X Window System для передачи данных из одного окна в другое. Выборы и буферы обмена обычно используются, когда пользователь выделяет текст или другие данные в одном окне и вставляет их в другое. Перетаскивание используется, когда пользователь выделяет объект в окне, затем нажимает на выделенное и перетаскивает его в другое окно. Поскольку два окна могут управляться разными приложениями, эти механизмы требуют обмена данными между двумя клиентами, подключенными к одному и тому же X-серверу. Основной протокол X Window System включает некоторые запросы и события, специфичные для обмена данными через выборы, но передача данных в основном осуществляется посредством отправки событий и свойств окон, которые не являются специфичными для этой операции. Могут передаваться различные типы данных: как правило, это текст, но также это могут быть изображения, числа, списки объектов и т.д. Далее рассматривается только случай передачи текста.
Selections, cut buffers, and drag and drop are the mechanisms used in the X Window System to allow a user to transfer data from one window to another. Selections and cut buffer are typically used when a user selects text or some other data in a window and pastes in another one. Drag and drop is used when a user selects something in a window, then clicks on the selection and drags it into another window. Since the two windows may be handled by two different applications, these mechanisms require two different clients connected with the same X server to exchange data. The X Window System core protocol includes some requests and events that are specific to selection exchange, but the transfer is mainly done using event sending and window properties, which are not specific to selection transfer. Different types of data can be transferred: it is usually text, but can also be an image, a number, a list of objects, etc. In the following, only the case of text is considered.
Скриншот
Наиболее часто используемым выбором является PRIMARY, который используется, когда пользователь выделяет данные. Выбор CLIPBOARD используется, когда пользователь выделяет данные и явно запрашивает их копирование в буфер обмена, например, через команду "Копировать" в меню "Редактировать" приложения. Последующий запрос "Вставить" приводит к использованию данных, находящихся в CLIPBOARD. На уровне базового протокола PRIMARY и CLIPBOARD не различаются. Однако клиент xclipboard заставляет их работать по-разному. В частности, когда другой клиент получает право владения выбором CLIPBOARD, эта программа запрашивает его и отображает в окне. Все последующие запросы к этому выбору обрабатываются xclipboard. Таким образом, содержимое выбора сохраняется после завершения работы клиента, который его скопировал.
The most used selection is the PRIMARY selection, and is used when the user selects some data. The CLIPBOARD selection is used when the user selects some data and explicitly requests it to be "copied" to the clipboard, such as by invoking "Copy" under the "Edit" menu of an application. An associated request of "Paste" results in the data of the CLIPBOARD selection being used. At the level of the core protocol, the PRIMARY and CLIPBOARD selections do not differ. But the xclipboard client makes them behave differently. In particular, when another client asserts the ownership of the CLIPBOARD selection, this program requests and displays it in a window. Any further request for this selection are handled by xclipboard. This way, the content of the selection survives the client having copied it.
Буферы для резки
Буферы срезки — это еще один механизм передачи данных, в частности выделенного текста. Они являются свойствами корневого окна, имеющими имена CUT BUFFER1 и т.д. В отличие от выборок, буферы срезки не предполагают прямого взаимодействия между клиентами. Вместо этого, когда текст выделен в окне, владелец окна копирует этот текст в свойство корневого окна с именем CUT BUFFER1. Когда пользователь вставляет текст в другое окно, владелец окна считывает это свойство корневого окна. Программа xcutsel осуществляет передачу данных между выборками и буферами срезки, а программа xcb предоставляет различные способы доступа к буферам срезки. Буферы срезки считаются устаревшими.
Cut buffers are another mechanism to transfer data, in particular selected text. They are window properties of the root window, named CUT BUFFER1, etc. Unlike selections, cut buffers do not involve a direct interaction between clients. Rather, when text is selected in a window, the window owner copies this text into the property of the root window called CUT BUFFER1. When the user pastes the text in another window, the window owner reads this property of the root window. The xcutsel program transfers data between selections and cut buffers, and the xcb program allows various kinds of access to the cut buffers. Cut buffers are considered obsolete.