I've applied attached patch which only eats page up/down keys on x11 and fixes the scrollbar scrolling bug. This is a conservative approach.
And because we really need more testing until the release it is now in svn (I know, I know, I know,... but somehow this thread must find an end, and we could still revert). Here the bugzilla entries: http://bugzilla.lyx.org/show_bug.cgi?id=3652 http://bugzilla.lyx.org/show_bug.cgi?id=3320 Peter
Index: src/frontends/qt4/GuiWorkArea.cpp =================================================================== --- src/frontends/qt4/GuiWorkArea.cpp (revision 18628) +++ src/frontends/qt4/GuiWorkArea.cpp (working copy) @@ -48,6 +48,11 @@ #include <boost/bind.hpp> #include <boost/current_function.hpp> +#ifdef Q_WS_X11 +#include <QX11Info> +extern "C" int XEventsQueued(Display *display, int mode); +#endif + #ifdef Q_WS_WIN int const CursorWidth = 2; #else @@ -234,6 +239,7 @@ void GuiWorkArea::adjustViewWithScrollBar(int) { scrollBufferView(verticalScrollBar()->sliderPosition()); + QApplication::syncX(); } @@ -414,6 +420,19 @@ void GuiWorkArea::keyPressEvent(QKeyEvent * e) { + // do nothing if there are other events + // (the auto repeated events come too fast) + // \todo FIXME: remove hard coded Qt keysprocess the key binding +#ifdef Q_WS_X11 + if (XEventsQueued(QX11Info::display(), 0) > 1 && e->isAutoRepeat() + && (Qt::Key_PageDown || Qt::Key_PageUp)) { + LYXERR(Debug::KEY) + << BOOST_CURRENT_FUNCTION << endl + << "sysstem is busy: scroll key event ignored" << endl; + e->ignore(); + return; + } +#endif LYXERR(Debug::KEY) << BOOST_CURRENT_FUNCTION << " count=" << e->count()