Hello community, here is the log from the commit of package libyui-ncurses for openSUSE:Factory checked in at 2020-01-30 09:40:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libyui-ncurses (Old) and /work/SRC/openSUSE:Factory/.libyui-ncurses.new.26092 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libyui-ncurses" Thu Jan 30 09:40:20 2020 rev:53 rq:766888 version:2.54.5 Changes: -------- --- /work/SRC/openSUSE:Factory/libyui-ncurses/libyui-ncurses.changes 2020-01-04 19:20:49.953123713 +0100 +++ /work/SRC/openSUSE:Factory/.libyui-ncurses.new.26092/libyui-ncurses.changes 2020-01-30 09:41:16.285485950 +0100 @@ -1,0 +2,7 @@ +Fri Jan 24 09:44:50 UTC 2020 - Michal Filka <[email protected]> + +- bsc#1154694 + - do not crash UI when terminal window is too tight for table +- 2.54.5 + +------------------------------------------------------------------- Old: ---- libyui-ncurses-2.54.4.tar.bz2 New: ---- libyui-ncurses-2.54.5.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libyui-ncurses-doc.spec ++++++ --- /var/tmp/diff_new_pack.W9mQTl/_old 2020-01-30 09:41:16.857486256 +0100 +++ /var/tmp/diff_new_pack.W9mQTl/_new 2020-01-30 09:41:16.857486256 +0100 @@ -1,7 +1,7 @@ # # spec file for package libyui-ncurses-doc # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -20,7 +20,7 @@ %define so_version 11 Name: %{parent}-doc -Version: 2.54.4 +Version: 2.54.5 Release: 0 Source: %{parent}-%{version}.tar.bz2 ++++++ libyui-ncurses.spec ++++++ --- /var/tmp/diff_new_pack.W9mQTl/_old 2020-01-30 09:41:16.881486269 +0100 +++ /var/tmp/diff_new_pack.W9mQTl/_new 2020-01-30 09:41:16.885486272 +0100 @@ -1,7 +1,7 @@ # # spec file for package libyui-ncurses # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,7 +17,7 @@ Name: libyui-ncurses -Version: 2.54.4 +Version: 2.54.5 Release: 0 Source: %{name}-%{version}.tar.bz2 ++++++ libyui-ncurses-2.54.4.tar.bz2 -> libyui-ncurses-2.54.5.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-ncurses-2.54.4/VERSION.cmake new/libyui-ncurses-2.54.5/VERSION.cmake --- old/libyui-ncurses-2.54.4/VERSION.cmake 2019-12-20 10:31:03.000000000 +0100 +++ new/libyui-ncurses-2.54.5/VERSION.cmake 2020-01-24 13:50:49.000000000 +0100 @@ -1,6 +1,6 @@ SET( VERSION_MAJOR "2" ) SET( VERSION_MINOR "54" ) -SET( VERSION_PATCH "4" ) +SET( VERSION_PATCH "5" ) SET( VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}${GIT_SHA1_VERSION}" ) ##### This is need for the libyui core, ONLY. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-ncurses-2.54.4/package/libyui-ncurses-doc.spec new/libyui-ncurses-2.54.5/package/libyui-ncurses-doc.spec --- old/libyui-ncurses-2.54.4/package/libyui-ncurses-doc.spec 2019-12-20 10:31:03.000000000 +0100 +++ new/libyui-ncurses-2.54.5/package/libyui-ncurses-doc.spec 2020-01-24 13:50:49.000000000 +0100 @@ -19,7 +19,7 @@ %define so_version 11 Name: %{parent}-doc -Version: 2.54.4 +Version: 2.54.5 Release: 0 Source: %{parent}-%{version}.tar.bz2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-ncurses-2.54.4/package/libyui-ncurses.changes new/libyui-ncurses-2.54.5/package/libyui-ncurses.changes --- old/libyui-ncurses-2.54.4/package/libyui-ncurses.changes 2019-12-20 10:31:03.000000000 +0100 +++ new/libyui-ncurses-2.54.5/package/libyui-ncurses.changes 2020-01-24 13:50:49.000000000 +0100 @@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Fri Jan 24 09:44:50 UTC 2020 - Michal Filka <[email protected]> + +- bsc#1154694 + - do not crash UI when terminal window is too tight for table +- 2.54.5 + +------------------------------------------------------------------- Thu Dec 19 18:18:24 CET 2019 - [email protected] - handle new sort-key when sorting tables (bsc#1140018) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-ncurses-2.54.4/package/libyui-ncurses.spec new/libyui-ncurses-2.54.5/package/libyui-ncurses.spec --- old/libyui-ncurses-2.54.4/package/libyui-ncurses.spec 2019-12-20 10:31:03.000000000 +0100 +++ new/libyui-ncurses-2.54.5/package/libyui-ncurses.spec 2020-01-24 13:50:49.000000000 +0100 @@ -17,7 +17,7 @@ Name: libyui-ncurses -Version: 2.54.4 +Version: 2.54.5 Release: 0 Source: %{name}-%{version}.tar.bz2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-ncurses-2.54.4/src/NCPadWidget.cc new/libyui-ncurses-2.54.5/src/NCPadWidget.cc --- old/libyui-ncurses-2.54.4/src/NCPadWidget.cc 2019-12-20 10:31:03.000000000 +0100 +++ new/libyui-ncurses-2.54.5/src/NCPadWidget.cc 2020-01-24 13:50:49.000000000 +0100 @@ -301,6 +301,8 @@ void NCPadWidget::wCreate( const wrect & newrect ) { + const int bsize = 2; // space allocated for the pad border + NCWidget::wCreate( newrect ); if ( win ) @@ -323,8 +325,32 @@ padrect.Sze.H, padrect.Sze.W, padrect.Pos.L, padrect.Pos.C, 'r' ); - hsb = new NCScrollbar( *this, *win, wpos( win->maxy(), 1 ), win->width() - 2, NCScrollbar::HORZ ); - vsb = new NCScrollbar( *this, *win, wpos( 1, win->maxx() ), win->height() - 2, NCScrollbar::VERT ); + + // Scrollbar has to be at least one character large otherwise ncurses window + // for the scrollbar will fail to create and we end with an exception which + // crashes whole UI consequently. + // + // scrollbar size is lowered by -2 bcs there is an overhead for frames etc. + if(win->width() - bsize) + { + hsb = new NCScrollbar( *this, *win, wpos( win->maxy(), 1 ), win->width() - bsize, NCScrollbar::HORZ ); + } + else + { + // no space no scrollbar, scrolling still works using arrows + hsb = nullptr; + } + + if(win->height() - bsize) + { + // we have enough space for vertical scrollbar + vsb = new NCScrollbar( *this, *win, wpos( 1, win->maxx() ), win->height() - bsize, NCScrollbar::VERT ); + } + else + { + // no space no scrollbar, scrolling still works using arrows + vsb = nullptr; + } } else { @@ -448,13 +474,23 @@ void NCPadWidget::HScroll( unsigned total, unsigned visible, unsigned start ) { - hsb->set( total, visible, start ); + // horizontal scroll bar might got disabled bcs of lack of space. See + // NCPadWidget::wCreate + if(hsb) + { + hsb->set( total, visible, start ); + } } void NCPadWidget::VScroll( unsigned total, unsigned visible, unsigned start ) { - vsb->set( total, visible, start ); + // vertical scroll bar might got disabled bcs of lack of space. See + // NCPadWidget::wCreate + if(vsb) + { + vsb->set( total, visible, start ); + } }
