копировать вставить исходный код xorg

Кто-нибудь знает, где в исходном коде xorg находится процедура копирования/вставки, которая привязана к левой (копировать) и средней (вставить) кнопкам мыши?

Больше данных: когда вы выбираете любой текст в сеансе X с помощью левой кнопки мыши (обычное выделение текста), он копируется в какой-то «буфер обмена». Далее, при нажатии средней кнопки мыши в любом элементе ввода/окне вставляется текст.

Зачем мне это нужно: мне это нужно, потому что я хочу немного изменить эту функциональность. Это очень полезно по сравнению с MsWindows Ctrl-c Ctrl-v. Намного быстрее. Но было бы еще лучше, если бы под какой-нибудь кнопкой мы могли добраться до предыдущего содержимого буфера обмена. В этом случае мы можем заменить один текст другим следующим образом:

  1. выделение текста А
  2. выбор текста назначения B (в этот момент под средней кнопкой текст A был перезаписан текстом B)
  3. вставьте текст A, используя НЕКОТОРУЮ кнопку (не среднюю кнопку)

person Tomek Wyderka    schedule 16.12.2012    source источник


Ответы (1)


Это не в исходном коде Xorg, а в исходниках для каждого инструментария или приложения X. X-сервер просто отправляет приложению события кнопок мыши, которые обрабатываются посредством его обработки событий для любых функций, которые они привязали к этим кнопкам. Механизм копирования и вставки, который вы описываете, является общим соглашением, которое большинство наборов инструментов и приложений реализовано по-своему.

Подробнее об этом механизме можно прочитать в спецификациях по адресу Одноранговая связь посредством выбора в Руководство по правилам межклиентского взаимодействия

person alanc    schedule 16.12.2012
comment
под X toolkit ты подразумеваешь например Gtk? - person Tomek Wyderka; 17.12.2012
comment
Я знаю, что Gtk — это набор инструментов. Но мне интересно, находится ли код, отвечающий за копирование в буфер обмена из выделения текста и вставки с помощью средней кнопки, в источниках Gtk или Qt... Это другое копирование, чем Ctrl-c Ctrl-v, другой буфер обмена! И он един для всех наборов инструментов. Я думаю, что это должно быть где-то еще. Но я проверю. Спасибо - person Tomek Wyderka; 17.12.2012