My Environment: Windows 11, Windows Terminal, Fedora WSL2, iamb debug on main
I have iamb currently set up to display four rooms in a 2x2 layout. With Windows terminal fullscreen on one of my displays this works fine. I discovered yesterday, while splitting my Windows Terminal tab into two that iamb panics due to the suddenly small size.
Manually resizing the terminal shows that only the right two rooms are resized as it shrinks until they're too narrow to display anything.
thread 'main' panicked at src/message/printer.rs:97:9:
attempt to subtract with overflow
stack backtrace:
0: rust_begin_unwind
at /builddir/build/BUILD/rustc-1.79.0-src/library/std/src/panicking.rs:652:5
1: core::panicking::panic_fmt
at /builddir/build/BUILD/rustc-1.79.0-src/library/core/src/panicking.rs:72:14
2: core::panicking::panic_const::panic_const_sub_overflow
at /builddir/build/BUILD/rustc-1.79.0-src/library/core/src/panicking.rs:180:21
3: iamb::message::printer::TextPrinter::remaining
at ./src/message/printer.rs:97:9
4: iamb::message::printer::TextPrinter::push_break
at ./src/message/printer.rs:119:25
5: iamb::message::printer::TextPrinter::commit
at ./src/message/printer.rs:103:13
6: iamb::message::printer::TextPrinter::finish
at ./src/message/printer.rs:275:9
7: iamb::message::MessageFormatter::push_reactions
at ./src/message/mod.rs:778:28
8: iamb::message::Message::show_with_preview
at ./src/message/mod.rs:1000:13
9: <iamb::windows::room::scrollback::Scrollback as ratatui::widgets::StatefulWidget>::render
at ./src/windows/room/scrollback.rs:1346:17
10: <iamb::windows::room::chat::Chat as ratatui::widgets::StatefulWidget>::render
at ./src/windows/room/chat.rs:932:9
11: <iamb::windows::room::chat::ChatState as modalkit_ratatui::WindowOps<iamb::base::IambInfo>>::draw
at ./src/windows/room/chat.rs:654:9
12: <iamb::windows::room::RoomState as modalkit_ratatui::WindowOps<iamb::base::IambInfo>>::draw
at ./src/windows/room/mod.rs:421:38
13: <iamb::windows::IambWindow as modalkit_ratatui::WindowOps<iamb::base::IambInfo>>::draw
at ./src/windows/mod.rs:484:40
14: <modalkit_ratatui::windows::slot::WindowSlot<W> as modalkit_ratatui::WindowOps<I>>::draw
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/modalkit-ratatui-0.0.19/src/windows/slot.rs:205:9
15: modalkit_ratatui::windows::layout::WindowLayout<W,I>::_draw::{{closure}}
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/modalkit-ratatui-0.0.19/src/windows/layout.rs:1980:25
16: <modalkit_ratatui::windows::AxisTreeNode<W,X,Y> as modalkit_ratatui::windows::tree::SubtreeOps<W,X,Y>>::for_each_value
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/modalkit-ratatui-0.0.19/src/windows/tree.rs:548:9
17: <core::option::Option<alloc::boxed::Box<modalkit_ratatui::windows::AxisTreeNode<W,X,Y>>> as modalkit_ratatui::windows::tree::SubtreeOps<W,X,Y>>::for_each_value
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/modalkit-ratatui-0.0.19/src/windows/tree.rs:598:27
18: <modalkit_ratatui::windows::AxisTreeNode<W,X,Y> as modalkit_ratatui::windows::tree::SubtreeOps<W,X,Y>>::for_each_value
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/modalkit-ratatui-0.0.19/src/windows/tree.rs:549:9
19: modalkit_ratatui::windows::layout::WindowLayout<W,I>::_draw
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/modalkit-ratatui-0.0.19/src/windows/layout.rs:1993:9
20: modalkit_ratatui::windows::layout::WindowLayout<W,I>::_draw::{{closure}}
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/modalkit-ratatui-0.0.19/src/windows/layout.rs:1986:21
21: <modalkit_ratatui::windows::AxisTreeNode<W,X,Y> as modalkit_ratatui::windows::tree::SubtreeOps<W,X,Y>>::for_each_value
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/modalkit-ratatui-0.0.19/src/windows/tree.rs:548:9
22: modalkit_ratatui::windows::layout::WindowLayout<W,I>::_draw
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/modalkit-ratatui-0.0.19/src/windows/layout.rs:1993:9
23: <modalkit_ratatui::windows::layout::WindowLayout<W,I> as ratatui::widgets::StatefulWidget>::render
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/modalkit-ratatui-0.0.19/src/windows/layout.rs:2019:13
24: <modalkit_ratatui::screen::Screen<W,I> as ratatui::widgets::StatefulWidget>::render
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/modalkit-ratatui-0.0.19/src/screen.rs:831:13
25: ratatui::terminal::frame::Frame::render_stateful_widget
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ratatui-0.26.1/src/terminal/frame.rs:125:9
26: iamb::Application::redraw::{{closure}}
at ./src/main.rs:315:13
27: ratatui::terminal::terminal::Terminal<B>::draw
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/ratatui-0.26.1/src/terminal/terminal.rs:269:9
28: iamb::Application::redraw
at ./src/main.rs:299:9
29: iamb::Application::step::{{closure}}
at ./src/main.rs:338:13
30: iamb::Application::run::{{closure}}
at ./src/main.rs:650:35
31: iamb::run::{{closure}}
at ./src/main.rs:1019:23
32: iamb::main::{{closure}}
at ./src/main.rs:1064:44
33: tokio::runtime::park::CachedParkThread::block_on::{{closure}}
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/runtime/park.rs:281:63
34: tokio::runtime::coop::with_budget
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/runtime/coop.rs:107:5
35: tokio::runtime::coop::budget
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/runtime/coop.rs:73:5
36: tokio::runtime::park::CachedParkThread::block_on
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/runtime/park.rs:281:31
37: tokio::runtime::context::blocking::BlockingRegionGuard::block_on
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/runtime/context/blocking.rs:66:9
38: tokio::runtime::scheduler::multi_thread::MultiThread::block_on::{{closure}}
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/runtime/scheduler/multi_thread/mod.rs:87:13
39: tokio::runtime::context::runtime::enter_runtime
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/runtime/context/runtime.rs:65:16
40: tokio::runtime::scheduler::multi_thread::MultiThread::block_on
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/runtime/scheduler/multi_thread/mod.rs:86:9
41: tokio::runtime::runtime::Runtime::block_on
at /home/krachynski/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.37.0/src/runtime/runtime.rs:351:45
42: iamb::main
at ./src/main.rs:1064:5
43: core::ops::function::FnOnce::call_once
at /builddir/build/BUILD/rustc-1.79.0-src/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
My Environment: Windows 11, Windows Terminal, Fedora WSL2, iamb debug on main
I have iamb currently set up to display four rooms in a 2x2 layout. With Windows terminal fullscreen on one of my displays this works fine. I discovered yesterday, while splitting my Windows Terminal tab into two that iamb panics due to the suddenly small size.
Manually resizing the terminal shows that only the right two rooms are resized as it shrinks until they're too narrow to display anything.