message: Implement event capturing for `PickList`
diff: @@ -230,10 +230,12 @@ where
  ) -> event::Status {
  match event {
  Event::Mouse(mouse::Event::ButtonPressed(mouse::Button::Left)) => {
  - if *self.is_open {
  + let event_status = if *self.is_open {
  // TODO: Encode cursor availability in the type system
  *self.is_open =
  cursor_position.x < 0.0 || cursor_position.y < 0.0;
  +
  + event::Status::Captured
  } else if layout.bounds().contains(cursor_position) {
  let selected = self.selected.as_ref();
  @@ -242,18 +244,24 @@ where
  .options
  .iter()
  .position(|option| Some(option) == selected);
  - }
  +
  + event::Status::Captured
  + } else {
  + event::Status::Ignored
  + };
  if let Some(last_selection) = self.last_selection.take() {
  messages.push((self.on_selected)(last_selection));
  *self.is_open = false;
  +
  + event::Status::Captured
  + } else {
  + event_status
  }
  }
  - _ => {}
  + _ => event::Status::Ignored,
  }
  -
  - event::Status::Ignored
  }
  fn draw(
  