mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 21:21:32 +00:00
Fix bug #6141: Scrolling error with insets at top of file.
Fix the regression introduced in r28397 while fixing bug #5573. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@34296 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
d2cc4a5b92
commit
87623ff478
@ -874,10 +874,22 @@ bool BufferView::scrollToCursor(DocIterator const & dit, bool recenter)
|
||||
int scrolled = 0;
|
||||
if (recenter)
|
||||
scrolled = scroll(ypos - height_/2);
|
||||
|
||||
// If the top part of the row falls of the screen, we scroll
|
||||
// up to align the top of the row with the top of the screen.
|
||||
else if (ypos - row_dim.ascent() < 0)
|
||||
scrolled = scrollUp(- ypos + row_dim.ascent());
|
||||
else if (ypos + row_dim.descent() > height_)
|
||||
scrolled = scrollDown(ypos - height_ + defaultRowHeight() );
|
||||
scrolled = scrollUp(-ypos + row_dim.ascent());
|
||||
|
||||
// If the bottom of the row falls of the screen, we scroll down.
|
||||
// However, we have to be careful not to scroll that much that
|
||||
// the top falls of the screen.
|
||||
else if (ypos + row_dim.descent() > height_) {
|
||||
int ynew = height_ - row_dim.descent();
|
||||
if (ynew < row_dim.ascent())
|
||||
ynew = row_dim.ascent();
|
||||
int const scroll = ypos - ynew;
|
||||
scrolled = scrollDown(scroll);
|
||||
}
|
||||
|
||||
// else, nothing to do, the cursor is already visible so we just return.
|
||||
return scrolled != 0;
|
||||
|
Loading…
Reference in New Issue
Block a user