@@ -74,8 +74,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
7474 }
7575
7676 let mut terminal = ratatui:: init ( ) ;
77+ // Initial output
78+ terminal. draw ( |frame| {
79+ Tui :: new ( & slabinfo. read ( ) ) . render ( frame. area ( ) , frame. buffer_mut ( ) ) ;
80+ } ) ?;
81+
7782 loop {
78- if let Ok ( true ) = event:: poll ( Duration :: from_millis ( 10 ) ) {
83+ if let Ok ( true ) = event:: poll ( Duration :: from_millis ( 20 ) ) {
7984 // If event available, break this loop
8085 if let Ok ( e) = event:: read ( ) {
8186 match e {
@@ -91,23 +96,22 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
9196 uucore:: error:: set_exit_code ( 0 ) ;
9297 break ;
9398 }
94- event:: Event :: Key ( KeyEvent {
95- code : KeyCode :: Char ( ' ' ) ,
96- ..
97- } ) => should_update. store ( true , Ordering :: Relaxed ) ,
99+ event:: Event :: Resize ( _, _) => should_update. store ( true , Ordering :: Relaxed ) ,
98100 _ => { }
99101 }
100102 }
101103 }
102104
103- terminal. draw ( |frame| {
104- Tui :: new ( & slabinfo. read ( ) ) . render ( frame. area ( ) , frame. buffer_mut ( ) ) ;
105- } ) ?;
105+ if should_update. load ( Ordering :: Relaxed ) {
106+ terminal. draw ( |frame| {
107+ Tui :: new ( & slabinfo. read ( ) ) . render ( frame. area ( ) , frame. buffer_mut ( ) ) ;
108+ } ) ?;
109+ }
106110
107111 if settings. once {
108112 break ;
109113 } else {
110- sleep ( Duration :: from_millis ( 10 ) ) ;
114+ sleep ( Duration :: from_millis ( 20 ) ) ;
111115 }
112116 }
113117
0 commit comments