• src/syncterm/ripper.c ripper.h term.c window.c

    From Deucе@VERT to Git commit to main/sbbs/master on Fri Sep 27 23:02:37 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/20ef1db56b2c50b12c6cd28f
    Modified Files:
    src/syncterm/ripper.c ripper.h term.c window.c
    Log Message:
    Fix status bar issue when RIP changes the number of lines.

    RIP is currently the only thing that can change the number of lines
    in the terminal while connected. This can actually result in there
    being more lines on the screen than the last set video mode supports.

    There's a "feature" in SyncTERM text modes (curses, ANSI, and Win32
    Console) where if the screen mode is "current", it uses the number
    of lines in the terminal, but if it's anything else, it forces the
    number of lines to the lines in the mode.

    This works great until RIP increases the number of lines beyond the
    number in the mode... when this happened, RIP would draw the status
    bar at the incorrect location on the screen.

    This change no longer sets the max rows in the terminal if the
    backend can set individual pixels (required for RIP). Further, to
    avoid a delay before redrawing the status bar after RIP changes the
    number of rows, the reinit_screen() function now sets a global to
    indicate it was called, and the status bar will always redraw when
    it's enabled and the flag is true.

    This *may* be related to bug 140, but may not be.

    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net