(8 risposte)
Chiuso 2 anni fa.
Sto usando Slackware 13.1 (kernel 2.6) con FVWM come desktop manager.
Ho riscontrato spesso problemi durante la codifica in cui il mio mouse ipersensibile registra un clic del pulsante centrale (rotellina del mouse) durante lo scorrimento con la rotellina del mouse.
C'è un modo per modificare il collegamento in modo che il clic centrale non si incolli più utilizzando gli appunti integrati con X11/Xorg/Xfree86? Preferirei se fosse rimappato a qualcosa come +MiddleClick o qualcosa di simile.
Ho già cercato nei forum e ho trovato alcuni suggerimenti utilizzando XMODMAP, ma finora nessuno ha funzionato.
Grazie a tutti in anticipo per il vostro tempo e assistenza.
Risposta accettata:
Puoi modificare l'opzione ButtonMapping in X config:http://www.linuxquestions.org/questions/linux-newbie-8/disable-xorgs-highlight-to-copy-middle-click-to-paste-clipboard-647810/
Opzione “ButtonMapping” “1 1 3 4 5”
Aggiornamento:nel thread:https://askubuntu.com/questions/4507/how-do-i-disable-middle-mouse-button-click-paste
la patch a gtk è collegata, che disabiliterà il pulsante centrale come incolla:http://subversion.assembla.com/svn/slipstream/patches/gtk_disable_middle_mouse_button_paste.patch
C'è una panoramica dell'azione del pulsante centrale in diverse librerie/applicazioni grafiche:http://os.livejournal.com/811721.html – quindi posso presumere che l'azione middleButton come XA_PRIMARY Paste non sia codificata in Xorg/Xserver stesso (dopo aver cercato in sorgenti per ora)
Ed ecco probabilmente la gestione del pulsante centrale in QT:
qt/src/gui/text/qtextcontrol.cpp
void QTextControlPrivate::mouseReleaseEvent (...
...
} else if (button == Qt::MidButton
&& (interactionFlags & Qt::TextEditable)
&& QApplication::clipboard()->supportsSelection()) {
setCursorPosition(pos);
const QMimeData *md = QApplication::clipboard()->mimeData(QClipboard::Selection);
if (md)
q->insertFromMimeData(md);
Anche qui per lineedit:qt/src/gui/widgets/qlineedit.cpp
void QLineEdit::mouseReleaseEvent(QMouseEvent* e)
...
} else if (!d->readOnly && e->button() == Qt::MidButton) {
d->deselect();
insert(QApplication::clipboard()->text(QClipboard::Selection));
e potrebbe essere qui per il livello di compatibilità qt3:qt/src/qt3support/text/q3textedit.cpp
void Q3TextEdit::contentsMouseReleaseEvent(QMouseEvent * e)
...
else if (e->button() == Qt::MidButton && !isReadOnly()) {
// only do middle-click pasting on systems that have selections (ie. X11)
if (QApplication::clipboard()->supportsSelection()) {
Quindi, puoi scaricare sorgenti QT e commentare questo ramo per disabilitare l'azione del pulsante centrale come incolla.
Dopo aver patchato QT e GTK, dovresti solo compilarli e installare invece gtk e QT di sistema (o posizionare in qualche directory ad esempio /usr/local/lib e mettere questa directory in /etc/ld.so.conf) prima. Quindi ogni applicazione collegata dinamicamente utilizzerà gtk/QT lib con patch e non incollerà nulla per la pressione del pulsante centrale.
Se l'applicazione è collegata in modo statico, dovresti ricompilarla con una libreria statica modificata o ricompilarla in un collegamento dinamico.
Correlati:Linux – Impostare il kernel predefinito in GRUB?Se hai bisogno di più toolkit grafici da correggere, dì semplicemente il nome del toolkit e cercherò di trovare il punto di origine della gestione del pulsante centrale come incolla.