lapce / floem

A native Rust UI library with fine-grained reactivity

Home Page:https://docs.rs/floem

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Application crashes when shift + tab beyond the first element

dominikwilkowski opened this issue · comments

When running the counter example you can use the tab key to move between the two active elements. When you get to the end the focus is returned to the beginning. However the app crashes when you use shift + tab to go backwards.

On macos anyway.

Backtrace below:

thread 'main' panicked at src/view.rs:574:67:
called `Option::unwrap()` on a `None` value
stack backtrace:
   0: rust_begin_unwind
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/panicking.rs:72:14
   2: core::panicking::panic
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/panicking.rs:127:5
   3: core::option::Option<T>::unwrap
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/option.rs:935:21
   4: floem::view::view_tree_previous::{{closure}}
             at /Users/dominik/Sites/floem/src/view.rs:574:55
   5: core::option::Option<T>::or_else
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/option.rs:1514:21
   6: floem::view::view_tree_previous
             at /Users/dominik/Sites/floem/src/view.rs:572:5
   7: floem::view::view_tab_navigation::{{closure}}
             at /Users/dominik/Sites/floem/src/view.rs:490:13
   8: floem::view::view_tab_navigation
             at /Users/dominik/Sites/floem/src/view.rs:499:21
   9: floem::window_handle::WindowHandle::event
             at /Users/dominik/Sites/floem/src/window_handle.rs:214:29
  10: floem::window_handle::WindowHandle::key_event
             at /Users/dominik/Sites/floem/src/window_handle.rs:384:13
  11: floem::app_handle::ApplicationHandle::handle_window_event
             at /Users/dominik/Sites/floem/src/app_handle.rs:177:17
  12: floem::app::Application::run::{{closure}}
             at /Users/dominik/Sites/floem/src/app.rs:135:21
  13: <winit::platform_impl::platform::app_state::EventLoopHandler<T> as winit::platform_impl::platform::app_state::EventHandler>::handle_nonuser_event::{{closure}}
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/app_state.rs:87:13
  14: winit::platform_impl::platform::app_state::EventLoopHandler<T>::with_callback
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/app_state.rs:70:13
  15: <winit::platform_impl::platform::app_state::EventLoopHandler<T> as winit::platform_impl::platform::app_state::EventHandler>::handle_nonuser_event
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/app_state.rs:86:9
  16: winit::platform_impl::platform::app_state::Handler::handle_nonuser_event
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/app_state.rs:314:13
  17: winit::platform_impl::platform::app_state::AppState::cleared
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/app_state.rs:616:21
  18: winit::platform_impl::platform::observer::control_flow_end_handler::{{closure}}
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/observer.rs:79:21
  19: winit::platform_impl::platform::observer::control_flow_handler::{{closure}}
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/observer.rs:41:9
  20: std::panicking::try::do_call
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:504:40
  21: ___rust_try
  22: std::panicking::try
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:468:19
  23: std::panic::catch_unwind
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panic.rs:142:14
  24: winit::platform_impl::platform::event_loop::stop_app_on_panic
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/event_loop.rs:465:11
  25: winit::platform_impl::platform::observer::control_flow_handler
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/observer.rs:39:5
  26: winit::platform_impl::platform::observer::control_flow_end_handler
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/observer.rs:74:9
  27: <unknown>
  28: <unknown>
  29: <unknown>
  30: <unknown>
  31: <unknown>
  32: <unknown>
  33: <unknown>
  34: <unknown>
  35: <unknown>
  36: <unknown>
  37: <() as objc2::message::MessageArguments>::__invoke
             at /Users/dominik/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc2-0.4.1/src/message/mod.rs:531:39
  38: objc2::message::platform::send_unverified
             at /Users/dominik/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc2-0.4.1/src/message/apple/mod.rs:35:34
  39: objc2::message::MessageReceiver::send_message
             at /Users/dominik/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc2-0.4.1/src/message/mod.rs:233:53
  40: winit::platform_impl::platform::appkit::application::NSApplication::run
             at /Users/dominik/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc2-0.4.1/src/macros/__attribute_helpers.rs:126:21
  41: winit::platform_impl::platform::event_loop::EventLoop<T>::run_on_demand::{{closure}}::{{closure}}
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/event_loop.rs:306:26
  42: core::ops::function::FnOnce::call_once
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/ops/function.rs:250:5
  43: <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/panic/unwind_safe.rs:271:9
  44: std::panicking::try::do_call
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:504:40
  45: ___rust_try
  46: std::panicking::try
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:468:19
  47: std::panic::catch_unwind
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panic.rs:142:14
  48: winit::platform_impl::platform::event_loop::EventLoop<T>::run_on_demand::{{closure}}
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/event_loop.rs:295:32
  49: objc2::rc::autorelease::autoreleasepool
             at /Users/dominik/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc2-0.4.1/src/rc/autorelease.rs:438:15
  50: winit::platform_impl::platform::event_loop::EventLoop<T>::run_on_demand
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/event_loop.rs:277:9
  51: winit::platform_impl::platform::event_loop::EventLoop<T>::run
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/event_loop.rs:244:9
  52: winit::event_loop::EventLoop<T>::run
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/event_loop.rs:249:9
  53: floem::app::Application::run
             at /Users/dominik/Sites/floem/src/app.rs:128:17
  54: floem::app::launch
             at /Users/dominik/Sites/floem/src/app.rs:27:5
  55: counter::main
             at ./src/main.rs:87:5
  56: core::ops::function::FnOnce::call_once
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
thread 'main' panicked at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/app_state.rs:377:33:
called `Result::unwrap()` on an `Err` value: PoisonError { .. }
stack backtrace:
   0: rust_begin_unwind
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/std/src/panicking.rs:597:5
   1: core::panicking::panic_fmt
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/panicking.rs:72:14
   2: core::result::unwrap_failed
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/result.rs:1652:5
   3: core::result::Result<T,E>::unwrap
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/result.rs:1077:23
   4: winit::platform_impl::platform::app_state::AppState::clear_callback
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/app_state.rs:377:9
   5: winit::platform_impl::platform::event_loop::EventLoop<T>::run_on_demand::{{closure}}
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/event_loop.rs:325:13
   6: objc2::rc::autorelease::autoreleasepool
             at /Users/dominik/.cargo/registry/src/index.crates.io-6f17d22bba15001f/objc2-0.4.1/src/rc/autorelease.rs:438:15
   7: winit::platform_impl::platform::event_loop::EventLoop<T>::run_on_demand
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/event_loop.rs:277:9
   8: winit::platform_impl::platform::event_loop::EventLoop<T>::run
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/platform_impl/macos/event_loop.rs:244:9
   9: winit::event_loop::EventLoop<T>::run
             at /Users/dominik/.cargo/git/checkouts/winit-1ee925e9c8358846/7608048/src/event_loop.rs:249:9
  10: floem::app::Application::run
             at /Users/dominik/Sites/floem/src/app.rs:128:17
  11: floem::app::launch
             at /Users/dominik/Sites/floem/src/app.rs:27:5
  12: counter::main
             at ./src/main.rs:87:5
  13: core::ops::function::FnOnce::call_once
             at /rustc/79e9716c980570bfd1f666e3b16ac583f0168962/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.