mirror of
https://github.com/tmux/tmux.git
synced 2025-04-13 23:08:49 +00:00
Only redraw if offset changed.
This commit is contained in:
parent
08a0c5e661
commit
4f8ed29022
@ -1,4 +1,4 @@
|
|||||||
/* $Id: window-scroll.c,v 1.2 2007-11-21 14:01:53 nicm Exp $ */
|
/* $Id: window-scroll.c,v 1.3 2007-11-21 14:39:46 nicm Exp $ */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
|
||||||
@ -48,7 +48,7 @@ window_scroll_init(struct window *w)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
window_scroll_resize(struct window *w, u_int sx, u_int sy)
|
window_scroll_resize(unused struct window *w, unused u_int sx, unused u_int sy)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -86,8 +86,9 @@ void
|
|||||||
window_scroll_key(struct window *w, int key)
|
window_scroll_key(struct window *w, int key)
|
||||||
{
|
{
|
||||||
struct window_scroll_mode_data *data = w->modedata;
|
struct window_scroll_mode_data *data = w->modedata;
|
||||||
u_int sy = screen_size_y(&w->screen);
|
u_int off, sy = screen_size_y(&w->screen);
|
||||||
|
|
||||||
|
off = data->off;
|
||||||
switch (key) {
|
switch (key) {
|
||||||
case 'Q':
|
case 'Q':
|
||||||
case 'q':
|
case 'q':
|
||||||
@ -102,14 +103,12 @@ window_scroll_key(struct window *w, int key)
|
|||||||
case KEYC_UP:
|
case KEYC_UP:
|
||||||
if (data->off < data->size)
|
if (data->off < data->size)
|
||||||
data->off++;
|
data->off++;
|
||||||
server_redraw_window_all(w);
|
|
||||||
break;
|
break;
|
||||||
case 'j':
|
case 'j':
|
||||||
case 'J':
|
case 'J':
|
||||||
case KEYC_DOWN:
|
case KEYC_DOWN:
|
||||||
if (data->off > 0)
|
if (data->off > 0)
|
||||||
data->off--;
|
data->off--;
|
||||||
server_redraw_window_all(w);
|
|
||||||
break;
|
break;
|
||||||
case '\025':
|
case '\025':
|
||||||
case KEYC_PPAGE:
|
case KEYC_PPAGE:
|
||||||
@ -117,7 +116,6 @@ window_scroll_key(struct window *w, int key)
|
|||||||
data->off = data->size;
|
data->off = data->size;
|
||||||
else
|
else
|
||||||
data->off += sy;
|
data->off += sy;
|
||||||
server_redraw_window_all(w);
|
|
||||||
break;
|
break;
|
||||||
case '\006':
|
case '\006':
|
||||||
case KEYC_NPAGE:
|
case KEYC_NPAGE:
|
||||||
@ -125,7 +123,8 @@ window_scroll_key(struct window *w, int key)
|
|||||||
data->off = 0;
|
data->off = 0;
|
||||||
else
|
else
|
||||||
data->off -= sy;
|
data->off -= sy;
|
||||||
server_redraw_window_all(w);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
if (off != data->off)
|
||||||
|
server_redraw_window_all(w);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user