Группа :: Графические оболочки/KDE
Пакет: kde4base
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
Патч: BR59256fixed.diff
Скачать
Скачать
Index: Vt102Emulation.cpp
===================================================================
--- Vt102Emulation.cpp (revision 939188)
+++ Vt102Emulation.cpp (working copy)
@@ -957,6 +957,31 @@
textToSend += _codec->fromUnicode(event->text());
sendData( textToSend.constData() , textToSend.length() );
+
+ if ( entry.command() != KeyboardTranslator::NoCommand && sender() )
+ {
+ switch ( entry.command() )
+ {
+ case KeyboardTranslator::ScrollLineUpCommand:
+ QMetaObject::invokeMethod( sender(), "scrollLineUp" );
+ break;
+
+ case KeyboardTranslator::ScrollLineDownCommand:
+ QMetaObject::invokeMethod( sender(), "scrollLineDown" );
+ break;
+
+ case KeyboardTranslator::ScrollPageUpCommand:
+ QMetaObject::invokeMethod( sender(), "scrollPageUp" );
+ break;
+
+ case KeyboardTranslator::ScrollPageDownCommand:
+ QMetaObject::invokeMethod( sender(), "scrollPageDown" );
+ break;
+
+ default:
+ break;
+ }
+ }
}
else
{
Index: TerminalDisplay.h
===================================================================
--- TerminalDisplay.h (revision 939188)
+++ TerminalDisplay.h (working copy)
@@ -485,6 +485,11 @@
*/
void setForegroundColor(const QColor& color);
+ void scrollLineUp();
+ void scrollLineDown();
+ void scrollPageUp();
+ void scrollPageDown();
+
signals:
/**
@@ -662,6 +667,8 @@
// redraws the cursor
void updateCursor();
+ void scrolled();
+
bool handleShortcutOverrideEvent(QKeyEvent* event);
// the window onto the terminal screen which this display
Index: TerminalDisplay.cpp
===================================================================
--- TerminalDisplay.cpp (revision 939188)
+++ TerminalDisplay.cpp (working copy)
@@ -2446,44 +2446,6 @@
void TerminalDisplay::keyPressEvent( QKeyEvent* event )
{
- bool emitKeyPressSignal = true;
-
- // Keyboard-based navigation
- if ( event->modifiers() == Qt::ShiftModifier )
- {
- bool update = true;
-
- if ( event->key() == Qt::Key_PageUp )
- {
- _screenWindow->scrollBy( ScreenWindow::ScrollPages , -1 );
- }
- else if ( event->key() == Qt::Key_PageDown )
- {
- _screenWindow->scrollBy( ScreenWindow::ScrollPages , 1 );
- }
- else if ( event->key() == Qt::Key_Up )
- {
- _screenWindow->scrollBy( ScreenWindow::ScrollLines , -1 );
- }
- else if ( event->key() == Qt::Key_Down )
- {
- _screenWindow->scrollBy( ScreenWindow::ScrollLines , 1 );
- }
- else
- update = false;
-
- if ( update )
- {
- _screenWindow->setTrackOutput( _screenWindow->atEndOfOutput() );
-
- updateLineProperties();
- updateImage();
-
- // do not send key press to terminal
- emitKeyPressSignal = false;
- }
- }
-
_actSel=0; // Key stroke implies a screen update, so TerminalDisplay won't
// know where the current selection is.
@@ -2496,8 +2458,7 @@
_cursorBlinking = false;
}
- if ( emitKeyPressSignal )
- emit keyPressedSignal(event);
+ emit keyPressedSignal(event);
event->accept();
}
@@ -2881,6 +2842,19 @@
setVTFont(font()); // Trigger an update.
}
+void TerminalDisplay::scrolled()
+{
+ _screenWindow->setTrackOutput( _screenWindow->atEndOfOutput() );
+ updateLineProperties();
+ updateImage();
+}
+
+void TerminalDisplay::scrollLineUp() { _screenWindow->scrollBy( ScreenWindow::ScrollLines, -1 ); scrolled(); }
+void TerminalDisplay::scrollLineDown() { _screenWindow->scrollBy( ScreenWindow::ScrollLines, 1 ); scrolled(); }
+void TerminalDisplay::scrollPageUp() { _screenWindow->scrollBy( ScreenWindow::ScrollPages, -1 ); scrolled(); }
+void TerminalDisplay::scrollPageDown() { _screenWindow->scrollBy( ScreenWindow::ScrollPages, 1 ); scrolled(); }
+
+
AutoScrollHandler::AutoScrollHandler(QWidget* parent)
: QObject(parent)
, _timerId(0)