[решено] firefox очищает буфер обмена при выходе
Модератор: /dev/random
-
- Сообщения: 847
- ОС: archlinux
[решено] firefox очищает буфер обмена при выходе
Часто замечаю, что скопированный из лисы в буфер обмена текст (т.е., грубо говоря, по Ctrl+C) исчезает из буфера, когда лису закрывают. Под windows такой проблемы не встречал. С чего бы это? Это лечится?
-
- Сообщения: 8735
- Статус: GPG ID: 4DFBD1D6 дом горит, козёл не видит...
- ОС: Slackware-current
Re: [решено] firefox очищает буфер обмена при выходе
ЕМНИП это не баг, а фича. Для уничтожения паролей полезна (что-бы ненароком в общий чат не вставить например). включается/отключается где-то в about:config. (опять-таки, если я не ошибаюсь)
-
- Администратор
- Сообщения: 5379
- ОС: Gentoo
Re: [решено] firefox очищает буфер обмена при выходе
Это связано с особенностью работы иксовых буферов.
Раньше в качестве "буферов обмена" использовались так называемые cutbuffers, 20 штук, нумерованных; на практике использовался только нулевой. Они были реализованы как свойства корневого окна иксов. Приложение устанавливало значение такого свойства, и оно могло сохраняться до самого перезапуска иксов. Недостатком схемы было то, что значением всегда был текст, и ничто другое нельзя было скопировать в буфер.
Теперь вместо них используются т.н. "selections" ("выделения"). Их три: primary selection (известный в народе как "мышиный буфер"), secondary selection (не используется на практике) и clipboard selection (используется в качестве "обычного" буфера обмена). Работают они следующим образом.
Приложение, в котором пользователь произвёл копирование, сообщает иксам, что отныне оно является владельцем соответствующего выделения. Предыдущий владелец получает об этом уведомление.
Любое приложение, желающее прочитать содержимое выделения, связывается с его текущим владельцем. Оно получает от владельца список форматов, в которых тот может предоставить это выделение. В случае огнелиса это обычно plain-text и html (последний - со всеми рисунками и прочим). Приложение делает выбор, и владелец передаёт ему содержимое выделения в запрошенном формате.
Очевидно, что закрытое приложение не может более предоставлять клиентам содержимое выделения. Поэтому при закрытии текущего владельца выделения, последнее помечается как не имеющее владельца, т.е. недоступное. Большинство приложений (но не все) в такой ситуации начинают вставлять содержимое из cutbuffer0.
Есть 2 способа сделать так, чтобы буфер обмена был доступен после закрытия приложения. Первый: делать вид, что закрылся, а на самом деле продолжать работать в фоне до тех пор, пока не поступит уведомление, что владелец выделения сменился. Этот подход используется, например, в xclip. Недостаток - расход системных ресурсов, т.к. программа продолжает работать. Второй: копировать содержимое не только в clipboard selection, но и в cutbuffer0. Используется, к примеру, в gvim. Недостатки: в cutbuffer может находиться только простой текст; не все современные программы всё ещё умеют вставлять из cutbuffer.
Используется ли какой-нибудь из этих подходов в огнелисе, я не знаю.
-
- Сообщения: 847
- ОС: archlinux
Re: [решено] firefox очищает буфер обмена при выходе
О, спасибо. То есть теперь мне понятно, что лиса тут ни при чём.
Хорошо, а нельзя ли какой-нибудь костыль приделать, чтобы содержимое cutbuffer0 всегда поддерживалось равным плэйн-текстовой части clipboard selection? "Как в венде" (:
upd: О, смотрите, что я нашел: http://members.chello.nl/~h.lai/gnome-clipboard-daemon/ вроде оно и есть.
upd: Да, даже работает.
Хорошо, а нельзя ли какой-нибудь костыль приделать, чтобы содержимое cutbuffer0 всегда поддерживалось равным плэйн-текстовой части clipboard selection? "Как в венде" (:
upd: О, смотрите, что я нашел: http://members.chello.nl/~h.lai/gnome-clipboard-daemon/ вроде оно и есть.
upd: Да, даже работает.
Спасибо сказали:
-
- Бывший модератор
- Сообщения: 4458
- Статус: GNU generation
- ОС: Debian GNU/Linux
Re: [решено] firefox очищает буфер обмена при выходе
dergachev писал(а): ↑28.12.2010 09:29upd: О, смотрите, что я нашел: http://members.chello.nl/~h.lai/gnome-clipboard-daemon/ вроде оно и есть.
Есть и более функциональные приложения, работающие также и с буфером выделения, ведущие историю и позволяющие редактировать содержимое буфера обмена:
- Klipper из состава KDE.
- Parcellite.
- Glipper.
- GNOME Clipboard Manager.
Спасибо сказали: