I've just locally disabled any reaction to SelectionClear events in GuiApplication::x11EventFilter(). I don't see any ill effects, and it obviously makes the bug go away. Do we want X clearing the selection for us, anyway? Who's the X expert around here?

Here's the patch for reference:
Index: GuiApplication.cpp
===================================================================
--- GuiApplication.cpp (revision 19390)
+++ GuiApplication.cpp (working copy)
@@ -321,10 +321,9 @@
if (!currentView())
return false;

- switch (xev->type) {
- case SelectionRequest: {
+ if (xev->type == SelectionRequest) {
if (xev->xselectionrequest.selection != XA_PRIMARY)
- break;
+ return false;
LYXERR(Debug::GUI) << "X requested selection." << endl;
BufferView * bv = currentView()->view();
if (bv) {
@@ -332,18 +331,7 @@
if (!sel.empty())
selection_.put(sel);
}
- break;
}
- case SelectionClear: {
- if (xev->xselectionclear.selection != XA_PRIMARY)
- break;
- LYXERR(Debug::GUI) << "Lost selection." << endl;
- BufferView * bv = currentView()->view();
- if (bv)
- bv->clearSelection();
- break;
- }
- }
return false;
}
#endif

rh

--
==================================================================
Richard G Heck, Jr
Professor of Philosophy
Brown University
http://frege.brown.edu/heck/
==================================================================
Get my public key from http://sks.keyserver.penguin.de
Hash: 0x1DE91F1E66FFBDEC
Learn how to sign your email using Thunderbird and GnuPG at:
http://dudu.dyn.2-h.org/nist/gpg-enigmail-howto

Reply via email to