diff --git a/src/difftextwindow.h b/src/difftextwindow.h --- a/src/difftextwindow.h +++ b/src/difftextwindow.h @@ -82,6 +82,7 @@ Q_SIGNALS: void resizeHeightChangedSignal(int nofVisibleLines); void resizeWidthChangedSignal(int nofVisibleColumns); + void scrollDiffTextWindow( int deltaX, int deltaY ); void newSelection(); void selectionEnd(); void setFastSelectorLine( int line ); diff --git a/src/difftextwindow.cpp b/src/difftextwindow.cpp --- a/src/difftextwindow.cpp +++ b/src/difftextwindow.cpp @@ -392,7 +392,7 @@ getNofVisibleLines()); if(newFirstLine != d->m_firstLine) { - scroll(0, newFirstLine - d->m_firstLine); + emit scrollDiffTextWindow(0, newFirstLine - d->m_firstLine); } update(); @@ -584,7 +584,7 @@ { d->m_scrollDeltaX = deltaX; d->m_scrollDeltaY = deltaY; - scroll(deltaX, deltaY); + emit scrollDiffTextWindow(deltaX, deltaY); if(d->m_delayedDrawTimer) killTimer(d->m_delayedDrawTimer); d->m_delayedDrawTimer = startTimer(50); @@ -645,7 +645,7 @@ if(d->m_scrollDeltaX != 0 || d->m_scrollDeltaY != 0) { d->m_selection.end(d->m_selection.getLastLine() + d->m_scrollDeltaY, d->m_selection.getLastPos() + d->m_scrollDeltaX); - scroll(d->m_scrollDeltaX, d->m_scrollDeltaY); + emit scrollDiffTextWindow(d->m_scrollDeltaX, d->m_scrollDeltaY); killTimer(d->m_delayedDrawTimer); d->m_delayedDrawTimer = startTimer(50); } diff --git a/src/mergeresultwindow.h b/src/mergeresultwindow.h --- a/src/mergeresultwindow.h +++ b/src/mergeresultwindow.h @@ -164,6 +164,7 @@ void slotStatusMessageChanged( const QString& ); Q_SIGNALS: + void scrollMergeResultWindow( int deltaX, int deltaY ); void modifiedChanged(bool bModified); void setFastSelectorRange( int line1, int nofLines ); void sourceMask( int srcMask, int enabledMask ); diff --git a/src/mergeresultwindow.cpp b/src/mergeresultwindow.cpp --- a/src/mergeresultwindow.cpp +++ b/src/mergeresultwindow.cpp @@ -952,7 +952,7 @@ int newFirstLine = getBestFirstLine(line1, nofLines, m_firstLine, getNofVisibleLines()); if(newFirstLine != m_firstLine) { - scroll(0, newFirstLine - m_firstLine); + emit scrollMergeResultWindow(0, newFirstLine - m_firstLine); } if(m_selection.isEmpty()) @@ -1618,7 +1618,7 @@ if(m_scrollDeltaX != 0 || m_scrollDeltaY != 0) { m_selection.end(m_selection.getLastLine() + m_scrollDeltaY, m_selection.getLastPos() + m_scrollDeltaX); - scroll(m_scrollDeltaX, m_scrollDeltaY); + emit scrollMergeResultWindow(m_scrollDeltaX, m_scrollDeltaY); killTimer(m_delayedDrawTimer); m_delayedDrawTimer = startTimer(50); } @@ -2214,7 +2214,7 @@ m_scrollDeltaY = deltaY; if(deltaX != 0 || deltaY != 0) { - scroll(deltaX, deltaY); + emit scrollMergeResultWindow(deltaX, deltaY); } } } @@ -2244,7 +2244,7 @@ { int d = -e->delta() * QApplication::wheelScrollLines() / 120; e->accept(); - scroll(0, std::min(d, getNofVisibleLines())); + emit scrollMergeResultWindow(0, std::min(d, getNofVisibleLines())); } bool MergeResultWindow::event(QEvent* e) @@ -2649,7 +2649,7 @@ update(); if(newFirstLine != m_firstLine || newHorizScrollOffset != m_horizScrollOffset) { - scroll(newHorizScrollOffset - m_horizScrollOffset, newFirstLine - m_firstLine); + emit scrollMergeResultWindow(newHorizScrollOffset - m_horizScrollOffset, newFirstLine - m_firstLine); return; } } diff --git a/src/pdiff.cpp b/src/pdiff.cpp --- a/src/pdiff.cpp +++ b/src/pdiff.cpp @@ -641,24 +641,28 @@ connect(m_pHScrollBar, SIGNAL(valueChanged2(int)), m_pDiffTextWindow1, SLOT(setHorizScrollOffset(int))); connect(m_pDiffTextWindow1, SIGNAL(newSelection()), this, SLOT(slotSelectionStart())); connect(m_pDiffTextWindow1, SIGNAL(selectionEnd()), this, SLOT(slotSelectionEnd())); + connect(m_pDiffTextWindow1, SIGNAL(scrollDiffTextWindow(int, int)), this, SLOT(scrollDiffTextWindow(int, int))); m_pDiffTextWindow1->installEventFilter(this); connect(m_pDiffVScrollBar, SIGNAL(valueChanged(int)), m_pDiffTextWindow2, SLOT(setFirstLine(int))); connect(m_pHScrollBar, SIGNAL(valueChanged2(int)), m_pDiffTextWindow2, SLOT(setHorizScrollOffset(int))); connect(m_pDiffTextWindow2, SIGNAL(newSelection()), this, SLOT(slotSelectionStart())); connect(m_pDiffTextWindow2, SIGNAL(selectionEnd()), this, SLOT(slotSelectionEnd())); + connect(m_pDiffTextWindow2, SIGNAL(scrollDiffTextWindow(int, int)), this, SLOT(scrollDiffTextWindow(int, int))); m_pDiffTextWindow2->installEventFilter(this); connect(m_pDiffVScrollBar, SIGNAL(valueChanged(int)), m_pDiffTextWindow3, SLOT(setFirstLine(int))); connect(m_pHScrollBar, SIGNAL(valueChanged2(int)), m_pDiffTextWindow3, SLOT(setHorizScrollOffset(int))); connect(m_pDiffTextWindow3, SIGNAL(newSelection()), this, SLOT(slotSelectionStart())); connect(m_pDiffTextWindow3, SIGNAL(selectionEnd()), this, SLOT(slotSelectionEnd())); + connect(m_pDiffTextWindow3, SIGNAL(scrollDiffTextWindow(int, int)), this, SLOT(scrollDiffTextWindow(int, int))); m_pDiffTextWindow3->installEventFilter(this); MergeResultWindow* p = m_pMergeResultWindow; connect(m_pMergeVScrollBar, &QScrollBar::valueChanged, p, &MergeResultWindow::setFirstLine); connect(m_pHScrollBar, &ReversibleScrollBar::valueChanged2, p, &MergeResultWindow::setHorizScrollOffset); + connect(p, SIGNAL(scrollMergeResultWindow(int, int)), this, SLOT(scrollMergeResultWindow(int, int))); connect(p, SIGNAL(sourceMask(int, int)), this, SLOT(sourceMask(int, int))); connect(p, SIGNAL(resizeSignal()), this, SLOT(resizeMergeResultWindow())); connect(p, SIGNAL(selectionEnd()), this, SLOT(slotSelectionEnd()));