@@ -624,23 +624,22 @@ render_os_window(OSWindow *os_window, double now, unsigned int active_window_id,
624624 if (os_window -> clear_count ++ < 3 ) blank_os_window (os_window );
625625 Tab * tab = os_window -> tabs + os_window -> active_tab ;
626626 BorderRects * br = & tab -> border_rects ;
627- before_render ();
628627 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 , os_window );
629- double pixels = 0.0 ;
630628 for (unsigned int i = 0 ; i < tab -> num_windows ; i ++ ) {
631629 Window * w = tab -> windows + i ;
632630 if (w -> visible && WD .screen ) {
633- pixels = get_scrolled_by_pixels ( WD . screen );
631+ before_render ( );
634632 bool is_active_window = i == tab -> active_window ;
635633 draw_cells (WD .vao_idx , WD .gvao_idx , WD .xstart , WD .ystart , WD .dx , WD .dy , WD .screen , os_window , is_active_window , true);
636634 if (WD .screen -> start_visual_bell_at != 0 ) {
637635 double bell_left = global_state .opts .visual_bell_duration - (now - WD .screen -> start_visual_bell_at );
638636 set_maximum_wait (bell_left );
639637 }
638+ double pixels = get_scrolled_by_pixels (WD .screen );
639+ after_render (pixels / os_window -> viewport_height * 2 );
640640 w -> cursor_visible_at_last_render = WD .screen -> cursor_render_info .is_visible ; w -> last_cursor_x = WD .screen -> cursor_render_info .x ; w -> last_cursor_y = WD .screen -> cursor_render_info .y ; w -> last_cursor_shape = WD .screen -> cursor_render_info .shape ;
641641 }
642642 }
643- after_render (pixels / os_window -> viewport_height * 2 );
644643 if (TD .screen && os_window -> num_tabs >= OPT (tab_bar_min_tabs )) draw_cells (TD .vao_idx , 0 , TD .xstart , TD .ystart , TD .dx , TD .dy , TD .screen , os_window , true, false);
645644 swap_window_buffers (os_window );
646645 br -> is_dirty = false;
0 commit comments