[решено] firefox очищает буфер обмена при выходе

Firefox, Opera, Chromium и прочее.

Модератор: /dev/random

Ответить
dergachev
Сообщения: 847
ОС: archlinux

[решено] firefox очищает буфер обмена при выходе

Сообщение dergachev »

Часто замечаю, что скопированный из лисы в буфер обмена текст (т.е., грубо говоря, по Ctrl+C) исчезает из буфера, когда лису закрывают. Под windows такой проблемы не встречал. С чего бы это? Это лечится?
Спасибо сказали:
Аватара пользователя
drBatty
Сообщения: 8735
Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
ОС: Slackware-current
Контактная информация:

Re: [решено] firefox очищает буфер обмена при выходе

Сообщение drBatty »

dergachev писал(а):
27.12.2010 22:28
С чего бы это? Это лечится?

ЕМНИП это не баг, а фича. Для уничтожения паролей полезна (что-бы ненароком в общий чат не вставить например). включается/отключается где-то в about:config. (опять-таки, если я не ошибаюсь)
http://emulek.blogspot.ru/ Windows Must Die
Учебник по sed зеркало в github

Скоро придёт
Осень
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5282
ОС: Gentoo

Re: [решено] firefox очищает буфер обмена при выходе

Сообщение /dev/random »

dergachev писал(а):
27.12.2010 22:28
Часто замечаю, что скопированный из лисы в буфер обмена текст (т.е., грубо говоря, по Ctrl+C) исчезает из буфера, когда лису закрывают. Под windows такой проблемы не встречал. С чего бы это? Это лечится?

Это связано с особенностью работы иксовых буферов.

Раньше в качестве "буферов обмена" использовались так называемые cutbuffers, 20 штук, нумерованных; на практике использовался только нулевой. Они были реализованы как свойства корневого окна иксов. Приложение устанавливало значение такого свойства, и оно могло сохраняться до самого перезапуска иксов. Недостатком схемы было то, что значением всегда был текст, и ничто другое нельзя было скопировать в буфер.

Теперь вместо них используются т.н. "selections" ("выделения"). Их три: primary selection (известный в народе как "мышиный буфер"), secondary selection (не используется на практике) и clipboard selection (используется в качестве "обычного" буфера обмена). Работают они следующим образом.
Приложение, в котором пользователь произвёл копирование, сообщает иксам, что отныне оно является владельцем соответствующего выделения. Предыдущий владелец получает об этом уведомление.
Любое приложение, желающее прочитать содержимое выделения, связывается с его текущим владельцем. Оно получает от владельца список форматов, в которых тот может предоставить это выделение. В случае огнелиса это обычно plain-text и html (последний - со всеми рисунками и прочим). Приложение делает выбор, и владелец передаёт ему содержимое выделения в запрошенном формате.
Очевидно, что закрытое приложение не может более предоставлять клиентам содержимое выделения. Поэтому при закрытии текущего владельца выделения, последнее помечается как не имеющее владельца, т.е. недоступное. Большинство приложений (но не все) в такой ситуации начинают вставлять содержимое из cutbuffer0.
Есть 2 способа сделать так, чтобы буфер обмена был доступен после закрытия приложения. Первый: делать вид, что закрылся, а на самом деле продолжать работать в фоне до тех пор, пока не поступит уведомление, что владелец выделения сменился. Этот подход используется, например, в xclip. Недостаток - расход системных ресурсов, т.к. программа продолжает работать. Второй: копировать содержимое не только в clipboard selection, но и в cutbuffer0. Используется, к примеру, в gvim. Недостатки: в cutbuffer может находиться только простой текст; не все современные программы всё ещё умеют вставлять из cutbuffer.
Используется ли какой-нибудь из этих подходов в огнелисе, я не знаю.
Спасибо сказали:
dergachev
Сообщения: 847
ОС: archlinux

Re: [решено] firefox очищает буфер обмена при выходе

Сообщение dergachev »

О, спасибо. То есть теперь мне понятно, что лиса тут ни при чём.

Хорошо, а нельзя ли какой-нибудь костыль приделать, чтобы содержимое cutbuffer0 всегда поддерживалось равным плэйн-текстовой части clipboard selection? "Как в венде" (:

upd: О, смотрите, что я нашел: http://members.chello.nl/~h.lai/gnome-clipboard-daemon/ вроде оно и есть.
upd: Да, даже работает.
Спасибо сказали:
Аватара пользователя
Rootlexx
Бывший модератор
Сообщения: 4455
Статус: GNU generation
ОС: Debian GNU/Linux

Re: [решено] firefox очищает буфер обмена при выходе

Сообщение Rootlexx »

dergachev писал(а):
28.12.2010 09:29
upd: О, смотрите, что я нашел: http://members.chello.nl/~h.lai/gnome-clipboard-daemon/ вроде оно и есть.

Есть и более функциональные приложения, работающие также и с буфером выделения, ведущие историю и позволяющие редактировать содержимое буфера обмена:
Спасибо сказали:
Ответить