|
|
|
|
@ -2122,12 +2122,7 @@ void TerminalDisplay::setScrollBarPosition(Enum::ScrollBarPositionEnum position) |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (position == Enum::ScrollBarHidden) { |
|
|
|
|
_scrollBar->hide(); |
|
|
|
|
} else if (_scrollBar->maximum() != 0) { |
|
|
|
|
_scrollBar->show(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
_scrollBar->setVisible(position != Enum::ScrollBarHidden); |
|
|
|
|
_scrollbarLocation = position; |
|
|
|
|
|
|
|
|
|
propagateSize(); |
|
|
|
|
@ -2159,14 +2154,10 @@ void TerminalDisplay::setScroll(int cursor, int slines) |
|
|
|
|
//
|
|
|
|
|
// setting the range or value of a _scrollBar will always trigger
|
|
|
|
|
// a repaint, so it should be avoided if it is not necessary
|
|
|
|
|
|
|
|
|
|
if (_scrollBar->maximum() == 0 && _scrollBar->value() == cursor) { |
|
|
|
|
// hide the scrollbar if it's not needed
|
|
|
|
|
_scrollBar->hide(); |
|
|
|
|
if (_scrollBar->minimum() == 0 && |
|
|
|
|
_scrollBar->maximum() == (slines - _lines) && |
|
|
|
|
_scrollBar->value() == cursor) { |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
} else if (_scrollbarLocation != Enum::ScrollBarHidden){ |
|
|
|
|
_scrollBar->show(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
disconnect(_scrollBar, &QScrollBar::valueChanged, this, &Konsole::TerminalDisplay::scrollBarPositionChanged); |
|
|
|
|
|