Account for layouts like the stack layout that hide windows when deciding the value of inactive_text_alpha

This commit is contained in:
Kovid Goyal 2024-04-04 06:01:26 +05:30
parent 16e3b8e0fd
commit d3b5e86f30
No known key found for this signature in database
GPG key ID: 06BC317B515ACE7C

View file

@ -793,12 +793,13 @@ render_prepared_os_window(OSWindow *os_window, unsigned int active_window_id, co
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, &TD, os_window, true, true, false, NULL);
bool is_single_window = tab->num_windows == 1;
unsigned int num_of_visible_windows = 0;
for (unsigned int i = 0; i < tab->num_windows; i++) { if (tab->windows[i].visible) num_of_visible_windows++; }
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, os_window, is_active_window, false, is_single_window, w);
draw_cells(WD.vao_idx, &WD, os_window, is_active_window, false, num_of_visible_windows == 1, w);
if (WD.screen->start_visual_bell_at != 0) {
set_maximum_wait(OPT(repaint_delay));
}