From 4f4d562670c16fbfc38c092c1017fb1d7b36b261 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 9 May 2020 09:06:18 +0530 Subject: [PATCH] Fix background_tint making the window semi-transparent Fixes #2618 --- docs/changelog.rst | 2 ++ kitty/shaders.c | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 723976c9e..55d8fc11f 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -29,6 +29,8 @@ To update |kitty|, :doc:`follow the instructions `. - Wayland: Fix OS window title not updating for hidden windows (:iss:`2629`) +- Fix :opt:`background_tint` making the window semi-transparent (:iss:`2618`) + 0.17.3 [2020-04-23] -------------------- diff --git a/kitty/shaders.c b/kitty/shaders.c index 3543d5bb8..342c2d8d4 100644 --- a/kitty/shaders.c +++ b/kitty/shaders.c @@ -465,7 +465,11 @@ draw_cells_interleaved(ssize_t vao_idx, ssize_t gvao_idx, Screen *screen, OSWind bind_program(CELL_BG_PROGRAM); glUniform1ui(cell_program_layouts[CELL_BG_PROGRAM].draw_bg_bitfield_location, 3); glDrawArraysInstanced(GL_TRIANGLE_FAN, 0, 4, screen->lines * screen->columns); - } else if (OPT(background_tint) > 0) draw_tint(false, screen, xstart, ystart, width, height); + } else if (OPT(background_tint) > 0) { + glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ZERO, GL_ONE); + draw_tint(false, screen, xstart, ystart, width, height); + BLEND_ONTO_OPAQUE; + } if (screen->grman->num_of_below_refs || has_bgimage(w)) { if (screen->grman->num_of_below_refs) draw_graphics(