Fix crash when extending selection after switching between primary and secondary screen

BUG: 398320
wilder
Martin T. H. Sandsmark 6 years ago
parent 23024d4b0a
commit 9bb6e3febe
  1. 5
      src/ScreenWindow.cpp
  2. 5
      src/ScreenWindow.h
  3. 5
      src/widgets/TerminalDisplay.cpp

@ -49,6 +49,11 @@ void ScreenWindow::setScreen(Screen *screen)
{
Q_ASSERT(screen);
if (screen == _screen) {
return;
}
emit screenAboutToChange();
_screen = screen;
}

@ -257,6 +257,11 @@ Q_SIGNALS:
/** Emitted when the selection is changed. */
void selectionChanged();
/** Emitted when e. g. Screen is changed (to alternate or primary), so
* initial selection offsets etc. are invalidated.
*/
void screenAboutToChange();
private:
Q_DISABLE_COPY(ScreenWindow)

@ -139,6 +139,11 @@ void TerminalDisplay::setScreenWindow(ScreenWindow* window)
connect(_screenWindow.data(), &Konsole::ScreenWindow::outputChanged, this, [this]() {
_filterUpdateRequired = true;
});
connect(_screenWindow.data(), &Konsole::ScreenWindow::screenAboutToChange, this, [this]() {
_iPntSel = QPoint();
_pntSel = QPoint();
_tripleSelBegin = QPoint();
});
connect(_screenWindow.data(), &Konsole::ScreenWindow::scrolled, this, [this]() {
_filterUpdateRequired = true;
});

Loading…
Cancel
Save