[PATCH V2] ui/ncurses: Correctly size pad for config screen

Geoff Levand geoff at infradead.org
Thu Sep 11 07:45:44 EST 2014


Hi Samuel,

Please include the reason we need this in the commit message.  I guess
something got corrupted on the screen?

-Geoff

On Wed, 2014-09-10 at 10:50 +1000, Samuel Mendoza-Jonas wrote:
> Signed-off-by: Samuel Mendoza-Jonas <sam.mj at au1.ibm.com>
> ---
>  ui/ncurses/nc-config.c | 15 ++++++++++-----
>  1 file changed, 10 insertions(+), 5 deletions(-)
> 
> diff --git a/ui/ncurses/nc-config.c b/ui/ncurses/nc-config.c
> index a095353..6b2d39b 100644
> --- a/ui/ncurses/nc-config.c
> +++ b/ui/ncurses/nc-config.c
> @@ -768,13 +768,18 @@ static void config_screen_draw(struct config_screen *screen,
>  	/* The size of the pad we'll need depends on the number of interfaces.
>  	 *
>  	 * We use N_FIELDS (which is quite conservative, as some fields share
> -	 * a line) as a base, then add 3 (as the network select field is
> -	 * takes 3 lines), and n_interfaces (as the network interface field
> -	 * has n_interfaces lines).
> +	 * a line) as a base, then:
> +	 * - add 6 (as the network select & boot device select fields take 3
> +	 *   lines each),
> +	 * - add n_interfaces for every field in the network select field, and
> +	 * - add (n_blockdevs + n_interfaces) for every field in the boot device
> +	 *   select field
>  	 */
> -	height = N_FIELDS + 3;
> -	if (sysinfo)
> +	height = N_FIELDS + 6;
> +	if (sysinfo) {
>  		height += sysinfo->n_interfaces;
> +		height += (sysinfo->n_blockdevs + sysinfo->n_interfaces);
> +	}
>  	if (!screen->pad || getmaxy(screen->pad) < height) {
>  		if (screen->pad)
>  			delwin(screen->pad);




More information about the Petitboot mailing list