@@ -74,8 +74,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
74
74
}
75
75
76
76
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
+
77
82
loop {
78
- if let Ok ( true ) = event:: poll ( Duration :: from_millis ( 10 ) ) {
83
+ if let Ok ( true ) = event:: poll ( Duration :: from_millis ( 20 ) ) {
79
84
// If event available, break this loop
80
85
if let Ok ( e) = event:: read ( ) {
81
86
match e {
@@ -91,23 +96,22 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
91
96
uucore:: error:: set_exit_code ( 0 ) ;
92
97
break ;
93
98
}
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 ) ,
98
100
_ => { }
99
101
}
100
102
}
101
103
}
102
104
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
+ }
106
110
107
111
if settings. once {
108
112
break ;
109
113
} else {
110
- sleep ( Duration :: from_millis ( 10 ) ) ;
114
+ sleep ( Duration :: from_millis ( 20 ) ) ;
111
115
}
112
116
}
113
117
0 commit comments