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 );
+    }
 }
 
 


Reply via email to