mirror of
https://github.com/tmux/tmux.git
synced 2026-06-22 05:16:59 +00:00
Add scrollbar auto-hide feature.
This commit is contained in:
@@ -860,6 +860,7 @@ window_copy_scroll1(struct window_mode_entry *wme, struct window_pane *wp,
|
||||
if (data->searchmark != NULL && !data->timeout)
|
||||
window_copy_search_marks(wme, NULL, data->searchregex, 1);
|
||||
window_copy_update_selection(wme, 1, 0);
|
||||
window_pane_scrollbar_show(wp, 1);
|
||||
window_copy_redraw_screen(wme);
|
||||
}
|
||||
|
||||
@@ -913,6 +914,7 @@ window_copy_pageup1(struct window_mode_entry *wme, int half_page)
|
||||
if (data->searchmark != NULL && !data->timeout)
|
||||
window_copy_search_marks(wme, NULL, data->searchregex, 1);
|
||||
window_copy_update_selection(wme, 1, 0);
|
||||
window_pane_scrollbar_show(wme->wp, 1);
|
||||
window_copy_redraw_screen(wme);
|
||||
}
|
||||
|
||||
@@ -973,6 +975,7 @@ window_copy_pagedown1(struct window_mode_entry *wme, int half_page,
|
||||
if (data->searchmark != NULL && !data->timeout)
|
||||
window_copy_search_marks(wme, NULL, data->searchregex, 1);
|
||||
window_copy_update_selection(wme, 1, 0);
|
||||
window_pane_scrollbar_show(wme->wp, 1);
|
||||
window_copy_redraw_screen(wme);
|
||||
return (0);
|
||||
}
|
||||
@@ -1789,7 +1792,7 @@ window_copy_cmd_history_bottom(struct window_copy_cmd_state *cs)
|
||||
struct window_mode_entry *wme = cs->wme;
|
||||
struct window_copy_mode_data *data = wme->data;
|
||||
struct screen *s = data->backing;
|
||||
u_int oy;
|
||||
u_int oy, old_oy = data->oy;
|
||||
|
||||
oy = screen_hsize(s) + data->cy - data->oy;
|
||||
if (data->lineflag == LINE_SEL_RIGHT_LEFT && oy == data->endsely)
|
||||
@@ -1802,6 +1805,8 @@ window_copy_cmd_history_bottom(struct window_copy_cmd_state *cs)
|
||||
if (data->searchmark != NULL && !data->timeout)
|
||||
window_copy_search_marks(wme, NULL, data->searchregex, 1);
|
||||
window_copy_update_selection(wme, 1, 0);
|
||||
if (data->oy != old_oy)
|
||||
window_pane_scrollbar_show(wme->wp, 1);
|
||||
return (WINDOW_COPY_CMD_REDRAW);
|
||||
}
|
||||
|
||||
@@ -1810,7 +1815,7 @@ window_copy_cmd_history_top(struct window_copy_cmd_state *cs)
|
||||
{
|
||||
struct window_mode_entry *wme = cs->wme;
|
||||
struct window_copy_mode_data *data = wme->data;
|
||||
u_int oy;
|
||||
u_int oy, old_oy = data->oy;
|
||||
|
||||
oy = screen_hsize(data->backing) + data->cy - data->oy;
|
||||
if (data->lineflag == LINE_SEL_LEFT_RIGHT && oy == data->sely)
|
||||
@@ -1823,6 +1828,8 @@ window_copy_cmd_history_top(struct window_copy_cmd_state *cs)
|
||||
if (data->searchmark != NULL && !data->timeout)
|
||||
window_copy_search_marks(wme, NULL, data->searchregex, 1);
|
||||
window_copy_update_selection(wme, 1, 0);
|
||||
if (data->oy != old_oy)
|
||||
window_pane_scrollbar_show(wme->wp, 1);
|
||||
return (WINDOW_COPY_CMD_REDRAW);
|
||||
}
|
||||
|
||||
@@ -3772,7 +3779,7 @@ window_copy_scroll_to(struct window_mode_entry *wme, u_int px, u_int py,
|
||||
{
|
||||
struct window_copy_mode_data *data = wme->data;
|
||||
struct grid *gd = data->backing->grid;
|
||||
u_int offset, gap;
|
||||
u_int offset, gap, old_oy = data->oy;
|
||||
|
||||
data->cx = px;
|
||||
|
||||
@@ -3796,6 +3803,8 @@ window_copy_scroll_to(struct window_mode_entry *wme, u_int px, u_int py,
|
||||
if (!no_redraw && data->searchmark != NULL && !data->timeout)
|
||||
window_copy_search_marks(wme, NULL, data->searchregex, 1);
|
||||
window_copy_update_selection(wme, 1, 0);
|
||||
if (data->oy != old_oy)
|
||||
window_pane_scrollbar_show(wme->wp, 1);
|
||||
if (!no_redraw)
|
||||
window_copy_redraw_screen(wme);
|
||||
}
|
||||
@@ -6539,6 +6548,7 @@ window_copy_scroll_up(struct window_mode_entry *wme, u_int ny)
|
||||
if (ny == 0)
|
||||
return;
|
||||
data->oy -= ny;
|
||||
window_pane_scrollbar_show(wp, 1);
|
||||
|
||||
if (data->searchmark != NULL && !data->timeout)
|
||||
window_copy_search_marks(wme, NULL, data->searchregex, 1);
|
||||
@@ -6604,6 +6614,7 @@ window_copy_scroll_down(struct window_mode_entry *wme, u_int ny)
|
||||
if (ny == 0)
|
||||
return;
|
||||
data->oy += ny;
|
||||
window_pane_scrollbar_show(wp, 1);
|
||||
|
||||
if (data->searchmark != NULL && !data->timeout)
|
||||
window_copy_search_marks(wme, NULL, data->searchregex, 1);
|
||||
|
||||
Reference in New Issue
Block a user