version 1.39, 2016/07/15 00:49:08 |
version 1.40, 2016/09/02 20:57:20 |
|
|
* If the height is decreasing, delete lines from the bottom until |
* If the height is decreasing, delete lines from the bottom until |
* hitting the cursor, then push lines from the top into the history. |
* hitting the cursor, then push lines from the top into the history. |
* |
* |
* When increasing, pull as many lines as possible from the history to |
* When increasing, pull as many lines as possible from scrolled |
* the top, then fill the remaining with blanks at the bottom. |
* history (not explicitly cleared from view) to the top, then fill the |
|
* remaining with blanks at the bottom. |
*/ |
*/ |
|
|
/* Size decreasing. */ |
/* Size decreasing. */ |
|
|
* lines from the top. |
* lines from the top. |
*/ |
*/ |
available = s->cy; |
available = s->cy; |
if (gd->flags & GRID_HISTORY) |
if (gd->flags & GRID_HISTORY) { |
|
gd->hscrolled += needed; |
gd->hsize += needed; |
gd->hsize += needed; |
else if (needed > 0 && available > 0) { |
} else if (needed > 0 && available > 0) { |
if (available > needed) |
if (available > needed) |
available = needed; |
available = needed; |
grid_view_delete_lines(gd, 0, available); |
grid_view_delete_lines(gd, 0, available); |
|
|
needed = sy - oldy; |
needed = sy - oldy; |
|
|
/* |
/* |
* Try to pull as much as possible out of the history, if is |
* Try to pull as much as possible out of scrolled history, if is |
* is enabled. |
* is enabled. |
*/ |
*/ |
available = gd->hsize; |
available = gd->hscrolled; |
if (gd->flags & GRID_HISTORY && available > 0) { |
if (gd->flags & GRID_HISTORY && available > 0) { |
if (available > needed) |
if (available > needed) |
available = needed; |
available = needed; |
|
gd->hscrolled -= available; |
gd->hsize -= available; |
gd->hsize -= available; |
s->cy += available; |
s->cy += available; |
} else |
} else |