summaryrefslogtreecommitdiff
path: root/src/scroll.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/scroll.c')
-rw-r--r--src/scroll.c39
1 files changed, 22 insertions, 17 deletions
diff --git a/src/scroll.c b/src/scroll.c
index 8f83851a2e0..5991fec004a 100644
--- a/src/scroll.c
+++ b/src/scroll.c
@@ -58,10 +58,12 @@ struct matrix_elt
unsigned char writecount;
};
-static void do_direct_scrolling P_ ((struct glyph_matrix *,
+static void do_direct_scrolling P_ ((struct frame *,
+ struct glyph_matrix *,
struct matrix_elt *,
int, int));
-static void do_scrolling P_ ((struct glyph_matrix *,
+static void do_scrolling P_ ((struct frame *,
+ struct glyph_matrix *,
struct matrix_elt *,
int, int));
@@ -242,7 +244,8 @@ calculate_scrolling (frame, matrix, window_size, lines_below,
of lines. */
static void
-do_scrolling (current_matrix, matrix, window_size, unchanged_at_top)
+do_scrolling (frame, current_matrix, matrix, window_size, unchanged_at_top)
+ struct frame *frame;
struct glyph_matrix *current_matrix;
struct matrix_elt *matrix;
int window_size;
@@ -309,12 +312,12 @@ do_scrolling (current_matrix, matrix, window_size, unchanged_at_top)
/* Set the terminal window, if not done already. */
if (! terminal_window_p)
{
- set_terminal_window (window_size + unchanged_at_top);
+ set_terminal_window (frame, window_size + unchanged_at_top);
terminal_window_p = 1;
}
/* Delete lines on the terminal. */
- ins_del_lines (j + unchanged_at_top, - p->deletecount);
+ ins_del_lines (frame, j + unchanged_at_top, - p->deletecount);
}
else
{
@@ -339,7 +342,7 @@ do_scrolling (current_matrix, matrix, window_size, unchanged_at_top)
/* Set the terminal window if not yet done. */
if (!terminal_window_p)
{
- set_terminal_window (window_size + unchanged_at_top);
+ set_terminal_window (frame, window_size + unchanged_at_top);
terminal_window_p = 1;
}
@@ -348,7 +351,7 @@ do_scrolling (current_matrix, matrix, window_size, unchanged_at_top)
--queue;
/* Do the deletion on the terminal. */
- ins_del_lines (queue->pos, queue->count);
+ ins_del_lines (frame, queue->pos, queue->count);
/* All lines in the range deleted become empty in the glyph
matrix. Assign to them glyph rows that are not retained.
@@ -381,7 +384,7 @@ do_scrolling (current_matrix, matrix, window_size, unchanged_at_top)
CHECK_MATRIX (current_matrix);
if (terminal_window_p)
- set_terminal_window (0);
+ set_terminal_window (frame, 0);
}
@@ -652,8 +655,9 @@ calculate_direct_scrolling (frame, matrix, window_size, lines_below,
the cost matrix for this approach is constructed. */
static void
-do_direct_scrolling (current_matrix, cost_matrix, window_size,
- unchanged_at_top)
+do_direct_scrolling (frame, current_matrix, cost_matrix,
+ window_size, unchanged_at_top)
+ struct frame *frame;
struct glyph_matrix *current_matrix;
struct matrix_elt *cost_matrix;
int window_size;
@@ -744,9 +748,9 @@ do_direct_scrolling (current_matrix, cost_matrix, window_size,
if (i > j)
{
/* Immediately insert lines */
- set_terminal_window (i + unchanged_at_top);
+ set_terminal_window (frame, i + unchanged_at_top);
terminal_window_p = 1;
- ins_del_lines (j - n_to_write + unchanged_at_top, i - j);
+ ins_del_lines (frame, j - n_to_write + unchanged_at_top, i - j);
}
else if (i < j)
{
@@ -776,9 +780,9 @@ do_direct_scrolling (current_matrix, cost_matrix, window_size,
--queue;
if (queue->count)
{
- set_terminal_window (queue->window);
+ set_terminal_window (frame, queue->window);
terminal_window_p = 1;
- ins_del_lines (queue->pos, queue->count);
+ ins_del_lines (frame, queue->pos, queue->count);
}
else
{
@@ -801,7 +805,7 @@ do_direct_scrolling (current_matrix, cost_matrix, window_size,
copy_from, retained_p);
if (terminal_window_p)
- set_terminal_window (0);
+ set_terminal_window (frame, 0);
}
@@ -827,7 +831,7 @@ scrolling_1 (frame, window_size, unchanged_at_top, unchanged_at_bottom,
unchanged_at_bottom,
draw_cost, old_draw_cost,
old_hash, new_hash, free_at_end);
- do_direct_scrolling (frame->current_matrix,
+ do_direct_scrolling (frame, frame->current_matrix,
matrix, window_size, unchanged_at_top);
}
else
@@ -835,7 +839,8 @@ scrolling_1 (frame, window_size, unchanged_at_top, unchanged_at_bottom,
calculate_scrolling (frame, matrix, window_size, unchanged_at_bottom,
draw_cost, old_hash, new_hash,
free_at_end);
- do_scrolling (frame->current_matrix, matrix, window_size,
+ do_scrolling (frame,
+ frame->current_matrix, matrix, window_size,
unchanged_at_top);
}
}