Keep focused item in view when resizing, part of #109
This commit is contained in:
parent
f4fd98cc23
commit
333d4e58ca
2 changed files with 29 additions and 0 deletions
11
src/tab.rs
11
src/tab.rs
|
|
@ -849,6 +849,7 @@ pub enum Message {
|
|||
RightClick(Option<usize>),
|
||||
MiddleClick(usize),
|
||||
Scroll(Viewport),
|
||||
ScrollToFocus,
|
||||
SelectAll,
|
||||
SetSort(HeadingOptions, bool),
|
||||
Thumbnail(PathBuf, ItemThumbnail),
|
||||
|
|
@ -2096,6 +2097,14 @@ impl Tab {
|
|||
Message::Scroll(viewport) => {
|
||||
self.scroll_opt = Some(viewport.absolute_offset());
|
||||
}
|
||||
Message::ScrollToFocus => {
|
||||
if let Some(offset) = self.select_focus_scroll() {
|
||||
commands.push(Command::Iced(scrollable::scroll_to(
|
||||
self.scrollable_id.clone(),
|
||||
offset,
|
||||
)));
|
||||
}
|
||||
}
|
||||
Message::SelectAll => {
|
||||
self.select_all();
|
||||
if self.select_focus.take().is_some() {
|
||||
|
|
@ -3464,6 +3473,8 @@ impl Tab {
|
|||
let mut mouse_area = mouse_area::MouseArea::new(item_view)
|
||||
.on_press(move |_point_opt| Message::Click(None))
|
||||
.on_release(|_| Message::ClickRelease(None))
|
||||
//TODO: better way to keep focused item in view
|
||||
.on_resize(|_| Message::ScrollToFocus)
|
||||
.on_back_press(move |_point_opt| Message::GoPrevious)
|
||||
.on_forward_press(move |_point_opt| Message::GoNext)
|
||||
.on_scroll(respond_to_scroll_direction);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue