bug-ncurses
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: why terminal resize changes size of windows?


From: Thomas Dickey
Subject: Re: why terminal resize changes size of windows?
Date: Thu, 10 Feb 2022 19:35:21 -0500
User-agent: Mutt/1.10.1 (2018-07-13)

On Thu, Feb 10, 2022 at 11:54:00AM +0100, Pavel Stehule wrote:
> Hi
> 
> I found an interesting issue. When I resize the terminal, so some windows
> are partially out of screen, the window size is reduced. From this moment,
> the window lost original size, and the size of window is related to size of
> screen.

As I pointed out here:

https://lists.gnu.org/archive/html/bug-ncurses/2020-08/msg00011.html

windows don't extend outside the screen.

When ncurses is handling SIGWINCH, it shrinks windows to fit in the screen.

> 
> It can be easy demonstrated by example:
> 
> #include <ncurses.h>
> 
> int
> main()
> {
>     int     c;
>     WINDOW *win;
> 
>     initscr();
> 
>     clear();
>     noecho();
>     cbreak();
>     curs_set(0);
>     keypad(stdscr, TRUE);
> 
>     win = newwin(20, 40, 15,15);
> 
>     timeout(250);
> 
>     while (c != 'q')
>     {
>         int lines, cols;
> 
>         clear();
> 
>         /* termina size */
>         mvprintw(10, 10, "terminal: %d, %d", LINES, COLS);
>         clrtoeol();
> 
>         /* stdscr size */
>         getmaxyx(stdscr, lines, cols);
>         mvprintw(11, 10, "stdscr: %d, %d", lines, cols);
>         clrtoeol();
> 
>         /* win size */
>         getmaxyx(win, lines, cols);
>         mvprintw(12, 10, "win: %d, %d", lines, cols);
>         clrtoeol();
> 
>         refresh();
> 
>         wclear(win);
>         box(win, 0,0);
>         wrefresh(win);
> 
>         c = getch();
>     }
> 
>     endwin();
> }
> 
> when running, try to reduce terminal size to 20 lines, 40 cols. After
> increasing terminal size, the size of window win is increased too.
> 
> What is the reason for this behaviour?
> 
> Regards
> 
> Pavel Stehule





-- 
Thomas E. Dickey <dickey@invisible-island.net>
https://invisible-island.net
ftp://ftp.invisible-island.net

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]