diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mainwindow.cpp | 14 | 
1 files changed, 13 insertions, 1 deletions
| diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index a09c25e8..a02910fd 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -783,7 +783,7 @@ void MainWindow::matchCaseUpdate()      if (!currentTab())          return; -    currentTab()->view()->findText(m_lastSearch, QWebPage::FindBackward | QWebPage::FindWrapsAroundDocument); +    currentTab()->view()->findText(m_lastSearch, QWebPage::FindBackward);      findNext();  } @@ -794,7 +794,12 @@ void MainWindow::findNext()          return;      if(m_findBar->isHidden()) +    { +        QPoint previous_position = currentTab()->view()->page()->currentFrame()->scrollPosition(); +        currentTab()->view()->page()->focusNextPrevChild(true); +        currentTab()->view()->page()->currentFrame()->setScrollPosition(previous_position);          return; +    }      QWebPage::FindFlags options = QWebPage::FindWrapsAroundDocument;      if (m_findBar->matchCase()) @@ -802,6 +807,13 @@ void MainWindow::findNext()      bool found = currentTab()->view()->findText(m_lastSearch, options);      m_findBar->notifyMatch(found); + +    if(!found) +    { +        QPoint previous_position = currentTab()->view()->page()->currentFrame()->scrollPosition(); +        currentTab()->view()->page()->focusNextPrevChild(true); +        currentTab()->view()->page()->currentFrame()->setScrollPosition(previous_position); +    }  } | 
