summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/model/locate.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/model/locate.rs b/src/model/locate.rs
index c73c0339..05204d2e 100644
--- a/src/model/locate.rs
+++ b/src/model/locate.rs
@@ -112,7 +112,15 @@ impl EntryNode {
let index = ctx
.pins
.iter()
- .filter(|other| other.is_in(&self.group) && other.flow < pin.flow)
+ .enumerate()
+ .filter(|&(k, other)| {
+ other.is_in(&self.group)
+ && if k < idx {
+ other.flow <= pin.flow
+ } else {
+ other.flow < pin.flow
+ }
+ })
.count();
// Prepare first argument.
@@ -248,7 +256,7 @@ impl PinBoard {
/// Encode a group into a user-facing array.
fn encode_group(&self, group: &Group) -> Array {
- let mut all: Vec<_> = self.iter().filter(|other| other.is_in(group)).collect();
+ let mut all: Vec<_> = self.iter().filter(|pin| pin.is_in(group)).collect();
all.sort_by_key(|pin| pin.flow);
all.iter()
.enumerate()