summaryrefslogtreecommitdiffstats
path: root/src/interactive/widgets/mark.rs
diff options
context:
space:
mode:
authorSebastian Thiel <sthiel@thoughtworks.com>2019-06-06 20:44:19 +0530
committerSebastian Thiel <sthiel@thoughtworks.com>2019-06-06 20:44:19 +0530
commit2dafff434f9e772d779ec71a2fd8de1e5d2780db (patch)
tree5f5a78d8d1d10a9bcf9c97d27b1e85e16f09fe62 /src/interactive/widgets/mark.rs
parentbeed74aec250823aa01f33925f2a877414c5526c (diff)
Know about focus in marker pane
Diffstat (limited to 'src/interactive/widgets/mark.rs')
-rw-r--r--src/interactive/widgets/mark.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/interactive/widgets/mark.rs b/src/interactive/widgets/mark.rs
index 67596bd..047c71a 100644
--- a/src/interactive/widgets/mark.rs
+++ b/src/interactive/widgets/mark.rs
@@ -18,6 +18,7 @@ pub struct MarkPane {
selected: Option<usize>,
marked: EntryMarkMap,
list: List,
+ has_focus: bool,
}
pub struct MarkPaneProps {
@@ -25,7 +26,16 @@ pub struct MarkPaneProps {
}
impl MarkPane {
+ pub fn set_focus(&mut self, has_focus: bool) {
+ self.has_focus = has_focus;
+ if has_focus {
+ self.selected = Some(self.marked.len().saturating_sub(1));
+ } else {
+ self.selected = None
+ }
+ }
pub fn toggle_index(mut self, index: TreeIndex, tree: &Tree) -> Option<Self> {
+ // TODO: use HashMapEntry (Vacant/Occupied)
if self.marked.get(&index).is_some() {
self.marked.remove(&index);
} else {