summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2014-01-29 02:08:42 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2014-01-29 02:10:08 +0900
commit6fb4b6d09704e34860027b038028fedd653e9b3c (patch)
treea8a0382c386cd072f1e932d38e6228ac115ea6c1
parent6aa168833b71ec1394437f2d93073c7a2949efae (diff)
Do not move vcursor on select using mouse
-rwxr-xr-xfzf13
1 files changed, 7 insertions, 6 deletions
diff --git a/fzf b/fzf
index 3c80a47e..071a701d 100755
--- a/fzf
+++ b/fzf
@@ -748,7 +748,7 @@ class FZF
else
@selects[sel] = 1
end
- vselect { |v| v + (o == C::KEY_BTAB ? 1 : -1) }
+ vselect { |v| v + (o == C::KEY_BTAB ? 1 : -1) } unless o == :select
end
},
ctrl(:b) => proc { cursor = [0, cursor - 1].max; nil },
@@ -762,10 +762,10 @@ class FZF
actions[C::KEY_LEFT] = actions[ctrl(:b)]
actions[C::KEY_RIGHT] = actions[ctrl(:f)]
actions[127] = actions[ctrl(:h)]
- actions[C::KEY_DOWN] = actions[ctrl(:n)] = actions[ctrl(:j)]
- actions[C::KEY_UP] = actions[ctrl(:p)] = actions[ctrl(:k)]
- actions[ctrl(:q)] = actions[ctrl(:g)] = actions[ctrl(:c)] = actions[:esc]
- actions[C::KEY_BTAB] = actions[ctrl(:i)]
+ actions[C::KEY_DOWN] = actions[ctrl(:n)] = actions[ctrl(:j)]
+ actions[C::KEY_UP] = actions[ctrl(:p)] = actions[ctrl(:k)]
+ actions[ctrl(:q)] = actions[ctrl(:g)] = actions[ctrl(:c)] = actions[:esc]
+ actions[:select] = actions[C::KEY_BTAB] = actions[ctrl(:i)]
emit(:key) { [@query.get, cursor] } unless @query.empty?
while true
@@ -781,11 +781,12 @@ class FZF
case m.bstate
when C::BUTTON1_CLICKED
if m.y == cursor_y
+ # TODO Wide-characters
cursor = [0, [input.length, m.x - 2].min].max
elsif m.x > 1 && m.y <= max_items
vselect { |v|
tv = max_items - m.y - 1
- ch = ctrl(:i) if v == tv
+ ch = :select if v == tv
tv
}
end