CVS commit by lunakl: Change the key for suspending Shift+arrows scrolling from Ctrl to Shift, modelled after the accesskey handling, so that it doesn't conflict with the accesskeys, and it makes more sense anyway. M +11 -4 khtmlview.cpp 1.652 --- kdelibs/khtml/khtmlview.cpp #1.651:1.652 @@ -208,4 +208,5 @@ public: scrollTimerId = 0; scrollSuspended = false; + scrollSuspendPreActivate = false; complete = false; firstRelayout = true; @@ -316,4 +317,5 @@ public: int scrollTimerId; bool scrollSuspended; + bool scrollSuspendPreActivate; int scrollTiming; int scrollBy; @@ -1123,4 +1125,6 @@ void KHTMLView::keyPressEvent( QKeyEvent if (_ke->key() == Key_Control && _ke->state()==0) d->accessKeysPreActivate=true; + if (_ke->key() == Key_Shift && _ke->state()==0) + d->scrollSuspendPreActivate=true; // accesskey handling needs to be done before dispatching, otherwise e.g. lineedits @@ -1342,8 +1346,4 @@ void KHTMLView::keyPressEvent( QKeyEvent _ke->ignore(); return; - case Key_Control: - if (d->scrollTimerId) - d->scrollSuspended = !d->scrollSuspended; - break; default: if (d->scrollTimerId) @@ -1425,4 +1425,11 @@ void KHTMLView::keyReleaseEvent(QKeyEven else if (d->accessKeysActivated) accessKeysTimeout(); + if( d->scrollSuspendPreActivate && _ke->key() != Key_Shift ) + d->scrollSuspendPreActivate = false; + if( _ke->key() == Key_Shift && d->scrollSuspendPreActivate && _ke->state() == Qt::ShiftButton + && !(KApplication::keyboardModifiers() & KApplication::ShiftModifier)) + if (d->scrollTimerId) + d->scrollSuspended = !d->scrollSuspended; + // Send keyup event if ( dispatchKeyEvent( _ke ) )