Skip to content

Commit b194a1b

Browse files
committed
...
1 parent 7255540 commit b194a1b

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

kitty/screen.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ new(PyTypeObject *type, PyObject *args, PyObject UNUSED *kwds) {
9999
self->modes = empty_modes;
100100
self->is_dirty = true;
101101
self->scroll_changed = false;
102+
self->pixel_scroll_changed = false;
102103
self->margin_top = 0; self->margin_bottom = self->lines - 1;
103104
self->history_line_added_count = 0;
104105
RESET_CHARSETS;
@@ -1115,6 +1116,7 @@ screen_erase_in_display(Screen *self, unsigned int how, bool private) {
11151116
self->scrolled_by = 0;
11161117
self->scroll_changed = true;
11171118
}
1119+
pixel_scroll(self, 0);
11181120
}
11191121
}
11201122

@@ -1476,6 +1478,7 @@ screen_update_cell_data(Screen *self, void *address, FONTS_DATA_HANDLE fonts_dat
14761478
if (self->scrolled_by) self->scrolled_by = MIN(self->scrolled_by + history_line_added_count, self->historybuf->count);
14771479
screen_reset_dirty(self);
14781480
self->scroll_changed = false;
1481+
self->pixel_scroll_changed = false;
14791482
for (index_type y = 0; y < MIN(self->lines, self->scrolled_by); y++) {
14801483
lnum = self->scrolled_by - 1 - y;
14811484
historybuf_init_line(self->historybuf, lnum, self->historybuf->line);
@@ -1994,7 +1997,7 @@ screen_selection_range_for_word(Screen *self, index_type x, index_type *y1, inde
19941997

19951998
void pixel_scroll(Screen *self, double amt) {
19961999
self->scrolled_by_pixels = amt;
1997-
self->scroll_changed = true;
2000+
self->pixel_scroll_changed = true;
19982001
}
19992002

20002003
bool

kitty/screen.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ typedef struct {
7474
Selection selection;
7575
SelectionBoundary last_rendered_selection_start, last_rendered_selection_end, last_rendered_url_start, last_rendered_url_end;
7676
Selection url_range;
77-
bool use_latin1, selection_updated_once, is_dirty, scroll_changed;
77+
bool use_latin1, selection_updated_once, is_dirty, scroll_changed, pixel_scroll_changed;
7878
Cursor *cursor;
7979
SavepointBuffer main_savepoints, alt_savepoints;
8080
SavemodesBuffer modes_savepoints;

kitty/shaders.c

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -346,6 +346,11 @@ cell_prepare_to_render(ssize_t vao_idx, ssize_t gvao_idx, Screen *screen, GLfloa
346346

347347
ensure_sprite_map(fonts_data);
348348

349+
if (screen->pixel_scroll_changed) {
350+
screen->pixel_scroll_changed = false;
351+
changed = true;
352+
}
353+
349354
if (screen->scroll_changed || screen->is_dirty) {
350355
sz = sizeof(GPUCell) * screen->lines * screen->columns;
351356
address = alloc_and_map_vao_buffer(vao_idx, sz, cell_data_buffer, GL_STREAM_DRAW, GL_WRITE_ONLY);

0 commit comments

Comments
 (0)