diff --git a/kitty/child-monitor.c b/kitty/child-monitor.c index 5a6a7c9b7..39346ff9b 100644 --- a/kitty/child-monitor.c +++ b/kitty/child-monitor.c @@ -668,12 +668,12 @@ render_os_window(OSWindow *os_window, unsigned int active_window_id, color_type draw_borders(br->vao_idx, br->num_border_rects, br->rect_buf, br->is_dirty, os_window->viewport_width, os_window->viewport_height, active_window_bg, num_visible_windows, all_windows_have_same_bg, os_window); br->is_dirty = false; } - if (TD.screen && os_window->num_tabs >= OPT(tab_bar_min_tabs)) draw_cells(TD.vao_idx, 0, TD.xstart, TD.ystart, TD.dx * x_ratio, TD.dy * y_ratio, TD.screen, os_window, true, false); + if (TD.screen && os_window->num_tabs >= OPT(tab_bar_min_tabs)) draw_cells(TD.vao_idx, 0, TD.xstart, TD.ystart, TD.dx * x_ratio, TD.dy * y_ratio, TD.screen, os_window, true, false, NULL); for (unsigned int i = 0; i < tab->num_windows; i++) { Window *w = tab->windows + i; if (w->visible && WD.screen) { bool is_active_window = i == tab->active_window; - draw_cells(WD.vao_idx, WD.gvao_idx, WD.xstart, WD.ystart, WD.dx * x_ratio, WD.dy * y_ratio, WD.screen, os_window, is_active_window, true); + draw_cells(WD.vao_idx, WD.gvao_idx, WD.xstart, WD.ystart, WD.dx * x_ratio, WD.dy * y_ratio, WD.screen, os_window, is_active_window, true, w); if (WD.screen->start_visual_bell_at != 0) { set_maximum_wait(OPT(repaint_delay)); } diff --git a/kitty/shaders.c b/kitty/shaders.c index 4ee313305..6fddb48ae 100644 --- a/kitty/shaders.c +++ b/kitty/shaders.c @@ -467,7 +467,7 @@ draw_tint(bool premult, Screen *screen, GLfloat xstart, GLfloat ystart, GLfloat } static void -draw_window_number(OSWindow *os_window, Screen *screen, GLfloat xstart, GLfloat ystart, GLfloat width, GLfloat height) { +draw_window_number(OSWindow *os_window, Screen *screen, GLfloat xstart, GLfloat ystart, GLfloat width, GLfloat height, Window *window UNUSED) { glEnable(GL_BLEND); glBlendFuncSeparate(GL_ONE, GL_ONE_MINUS_SRC_ALPHA, GL_ZERO, GL_ONE); // BLEND_PREMULT bind_program(SEVEN_SEGMENT_PROGRAM); @@ -695,7 +695,7 @@ get_visual_bell_intensity(Screen *screen) { } void -draw_cells(ssize_t vao_idx, ssize_t gvao_idx, GLfloat xstart, GLfloat ystart, GLfloat dx, GLfloat dy, Screen *screen, OSWindow *os_window, bool is_active_window, bool can_be_focused) { +draw_cells(ssize_t vao_idx, ssize_t gvao_idx, GLfloat xstart, GLfloat ystart, GLfloat dx, GLfloat dy, Screen *screen, OSWindow *os_window, bool is_active_window, bool can_be_focused, Window *window) { CELL_BUFFERS; bool inverted = screen_invert_colors(screen); @@ -737,7 +737,7 @@ draw_cells(ssize_t vao_idx, ssize_t gvao_idx, GLfloat xstart, GLfloat ystart, GL if (intensity > 0.0f) draw_visual_bell_flash(intensity, xstart, ystart, w, h, screen); } - if (screen->display_window_number) draw_window_number(os_window, screen, xstart, ystart, w, h); + if (window && screen->display_window_number) draw_window_number(os_window, screen, xstart, ystart, w, h, window); } // }}} diff --git a/kitty/state.h b/kitty/state.h index 2f074d5cf..3edc5b3d5 100644 --- a/kitty/state.h +++ b/kitty/state.h @@ -257,7 +257,7 @@ ssize_t create_cell_vao(void); ssize_t create_graphics_vao(void); ssize_t create_border_vao(void); bool send_cell_data_to_gpu(ssize_t, ssize_t, float, float, float, float, Screen *, OSWindow *); -void draw_cells(ssize_t, ssize_t, float, float, float, float, Screen *, OSWindow *, bool, bool); +void draw_cells(ssize_t, ssize_t, float, float, float, float, Screen *, OSWindow *, bool, bool, Window*); void draw_centered_alpha_mask(OSWindow *w, size_t screen_width, size_t screen_height, size_t width, size_t height, uint8_t *canvas); void update_surface_size(int, int, uint32_t); void free_texture(uint32_t*);