mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-10 04:27:45 -05:00
Merge branch 'master' into pixelated-curly
This commit is contained in:
commit
3ff4f57923
5 changed files with 16 additions and 8 deletions
|
|
@ -126,10 +126,13 @@
|
|||
application (kitty keyboard protocol only) ([#2257][2257]).
|
||||
* Crash when application emits sixel RA with a height of 0, a width >
|
||||
0, and then starts writing sixel data ([#2267][2267]).
|
||||
* Crash if shutting down terminal instance while a "pre-apply damage"
|
||||
thread is running ([#2263][2263]).
|
||||
|
||||
[2232]: https://codeberg.org/dnkl/foot/issues/2232
|
||||
[2257]: https://codeberg.org/dnkl/foot/issues/2257
|
||||
[2267]: https://codeberg.org/dnkl/foot/issues/2267
|
||||
[2263]: https://codeberg.org/dnkl/foot/issues/2263
|
||||
|
||||
|
||||
### Security
|
||||
|
|
|
|||
8
osc.c
8
osc.c
|
|
@ -525,12 +525,14 @@ osc_uri(struct terminal *term, char *string)
|
|||
id = sdbm_hash(value);
|
||||
}
|
||||
|
||||
LOG_DBG("OSC-8: URL=%s, id=%" PRIu64, uri, id);
|
||||
|
||||
if (uri[0] == '\0')
|
||||
if (uri[0] == '\0') {
|
||||
LOG_DBG("OSC-8: close");
|
||||
term_osc8_close(term);
|
||||
else
|
||||
} else {
|
||||
LOG_DBG("OSC-8: URL=%s, id=%" PRIu64, uri, id);
|
||||
term_osc8_open(term, id, uri);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
10
render.c
10
render.c
|
|
@ -2305,8 +2305,8 @@ render_worker_thread(void *_ctx)
|
|||
return -1;
|
||||
}
|
||||
|
||||
static void
|
||||
wait_for_preapply_damage(struct terminal *term)
|
||||
void
|
||||
render_wait_for_preapply_damage(struct terminal *term)
|
||||
{
|
||||
if (!term->render.preapply_last_frame_damage)
|
||||
return;
|
||||
|
|
@ -3342,7 +3342,7 @@ grid_render(struct terminal *term)
|
|||
term->render.workers.preapplied_damage.buf != NULL))
|
||||
{
|
||||
clock_gettime(CLOCK_MONOTONIC, &start_wait_preapply);
|
||||
wait_for_preapply_damage(term);
|
||||
render_wait_for_preapply_damage(term);
|
||||
clock_gettime(CLOCK_MONOTONIC, &stop_wait_preapply);
|
||||
}
|
||||
|
||||
|
|
@ -4418,7 +4418,7 @@ delayed_reflow_of_normal_grid(struct terminal *term)
|
|||
term->interactive_resizing.old_hide_cursor = false;
|
||||
|
||||
/* Invalidate render pointers */
|
||||
wait_for_preapply_damage(term);
|
||||
render_wait_for_preapply_damage(term);
|
||||
shm_unref(term->render.last_buf);
|
||||
term->render.last_buf = NULL;
|
||||
term->render.last_cursor.row = NULL;
|
||||
|
|
@ -4993,7 +4993,7 @@ damage_view:
|
|||
tll_free(term->normal.scroll_damage);
|
||||
tll_free(term->alt.scroll_damage);
|
||||
|
||||
wait_for_preapply_damage(term);
|
||||
render_wait_for_preapply_damage(term);
|
||||
shm_unref(term->render.last_buf);
|
||||
term->render.last_buf = NULL;
|
||||
term_damage_view(term);
|
||||
|
|
|
|||
1
render.h
1
render.h
|
|
@ -49,3 +49,4 @@ struct csd_data {
|
|||
struct csd_data get_csd_data(const struct terminal *term, enum csd_surface surf_idx);
|
||||
|
||||
void render_buffer_release_callback(struct buffer *buf, void *data);
|
||||
void render_wait_for_preapply_damage(struct terminal *term);
|
||||
|
|
|
|||
|
|
@ -2129,6 +2129,8 @@ wayl_win_destroy(struct wl_window *win)
|
|||
|
||||
struct terminal *term = win->term;
|
||||
|
||||
render_wait_for_preapply_damage(term);
|
||||
|
||||
if (win->csd.move_timeout_fd != -1)
|
||||
close(win->csd.move_timeout_fd);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue