From b92246448dfee03cd52b9aabb77fc68d1ddd9eac Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Mon, 29 Sep 2025 20:35:12 +0530 Subject: [PATCH] Fix a regression in the previous release that caused the cursor trail to not be hidden properly In refactoring the trail shader, I guess I forgot to premultiply the output color. Fixes #9039 --- docs/changelog.rst | 3 +++ kitty/shaders.c | 2 +- kitty/trail_fragment.glsl | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 1f091fc96..515fdcd8c 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -155,6 +155,9 @@ Detailed list of changes picker list the sessions in a fixed order rather than by most recent (:disc:`9033`) +- Fix a regression in the previous release that caused the cursor trail to not + be hidden properly (:iss:`9039`) + - Session files: Fix a regression in the previous release that broke matching on windows in the current tab (:iss:`9037`) diff --git a/kitty/shaders.c b/kitty/shaders.c index 6dad08a5f..8c5d4234f 100644 --- a/kitty/shaders.c +++ b/kitty/shaders.c @@ -1231,7 +1231,7 @@ draw_cursor_trail(CursorTrail *trail, Window *active_window) { } color_vec3(trail_program_layout.uniforms.trail_color, trail_color); - glUniform1fv(trail_program_layout.uniforms.trail_opacity, 1, &trail->opacity); + glUniform1f(trail_program_layout.uniforms.trail_opacity, trail->opacity); draw_quad(true, 0); unbind_program(); diff --git a/kitty/trail_fragment.glsl b/kitty/trail_fragment.glsl index 099fc35e3..f1bb3c3cd 100644 --- a/kitty/trail_fragment.glsl +++ b/kitty/trail_fragment.glsl @@ -12,5 +12,5 @@ void main() { float in_x = step(cursor_edge_x[0], frag_pos.x) * step(frag_pos.x, cursor_edge_x[1]); float in_y = step(cursor_edge_y[1], frag_pos.y) * step(frag_pos.y, cursor_edge_y[0]); opacity *= 1.0f - in_x * in_y; - final_color = vec4(trail_color, opacity); + final_color = vec4(trail_color * opacity, opacity); }