Skip to content

Commit 8309837

Browse files
committed
fix tui key down twice on win
1 parent fba6726 commit 8309837

File tree

9 files changed

+56
-17
lines changed

9 files changed

+56
-17
lines changed

ytflow-bin-shared/src/edit/gen/proxy_types.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use ciborium::{cbor, value::Value as CborValue};
2-
use serde_bytes::{ByteBuf, Bytes};
2+
use serde_bytes::Bytes;
33
use strum_macros::{Display, EnumIter};
44

55
use super::serialize_cbor;

ytflow-bin-shared/src/edit/views/input.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use anyhow::Result;
2-
use crossterm::event::{Event, KeyCode, KeyEvent};
2+
use crossterm::event::{Event, KeyCode, KeyEvent, KeyEventKind};
33
use tui::{
44
layout::{Constraint, Direction, Layout},
55
style::{Color, Style},
@@ -58,14 +58,18 @@ pub fn run_input_view(ctx: &mut edit::AppContext, req: &mut InputRequest) -> Res
5858
let ev = crossterm::event::read().unwrap();
5959
match &ev {
6060
Event::Key(KeyEvent {
61-
code: KeyCode::Esc, ..
61+
code: KeyCode::Esc,
62+
kind: KeyEventKind::Press,
63+
..
6264
}) => return Ok(NavChoice::Back),
6365
Event::Key(KeyEvent {
6466
code: KeyCode::Enter,
67+
kind: KeyEventKind::Press,
6568
..
6669
}) if !has_error => break,
6770
Event::Key(KeyEvent {
6871
code: KeyCode::Enter,
72+
kind: KeyEventKind::Press,
6973
..
7074
}) => {}
7175
_ => {

ytflow-bin-shared/src/edit/views/main.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::cell::RefCell;
22

33
use anyhow::{Context, Result};
4-
use crossterm::event::{Event, KeyCode, KeyEvent};
4+
use crossterm::event::{Event, KeyCode, KeyEvent, KeyEventKind};
55
use tui::{
66
layout::{Constraint, Direction, Layout},
77
style::Style,
@@ -186,7 +186,12 @@ https://github.com/YtFlow/YtFlowCore",
186186
continue 'main_loop;
187187
}
188188
}
189-
if let Event::Key(KeyEvent { code, .. }) = crossterm::event::read().unwrap() {
189+
if let Event::Key(KeyEvent {
190+
code,
191+
kind: KeyEventKind::Press,
192+
..
193+
}) = crossterm::event::read().unwrap()
194+
{
190195
match code {
191196
KeyCode::Char('q') => break,
192197
KeyCode::Char('c')

ytflow-bin-shared/src/edit/views/new_profile.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use anyhow::{Context, Result};
2-
use crossterm::event::{Event, KeyCode, KeyEvent};
2+
use crossterm::event::{Event, KeyCode, KeyEvent, KeyEventKind};
33
use tui::{
44
layout::{Constraint, Direction, Layout},
55
style::Style,
@@ -33,7 +33,12 @@ pub fn run_new_profile_view(ctx: &mut edit::AppContext) -> Result<NavChoice> {
3333
ctx.term.draw(|f| {
3434
f.render_stateful_widget(template_list, main_chunk, &mut template_state);
3535
})?;
36-
if let Event::Key(KeyEvent { code, .. }) = crossterm::event::read().unwrap() {
36+
if let Event::Key(KeyEvent {
37+
code,
38+
kind: KeyEventKind::Press,
39+
..
40+
}) = crossterm::event::read().unwrap()
41+
{
3742
match code {
3843
KeyCode::Char('q') | KeyCode::Esc => return Ok(NavChoice::Back),
3944
KeyCode::Down => {

ytflow-bin-shared/src/edit/views/new_proxy_group.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::cell::Cell;
22

33
use anyhow::{Context, Result};
4-
use crossterm::event::{Event, KeyCode, KeyEvent};
4+
use crossterm::event::{Event, KeyCode, KeyEvent, KeyEventKind};
55
use tui::{
66
layout::{Constraint, Direction, Layout},
77
style::Style,
@@ -49,7 +49,12 @@ pub fn run_new_proxy_group_view(ctx: &mut edit::AppContext) -> Result<NavChoice>
4949
ctx.term.draw(|f| {
5050
f.render_stateful_widget(template_list, main_chunk, &mut type_state);
5151
})?;
52-
if let Event::Key(KeyEvent { code, .. }) = crossterm::event::read().unwrap() {
52+
if let Event::Key(KeyEvent {
53+
code,
54+
kind: KeyEventKind::Press,
55+
..
56+
}) = crossterm::event::read().unwrap()
57+
{
5358
match (code, type_state.selected()) {
5459
(KeyCode::Char('q') | KeyCode::Esc, _) => return Ok(NavChoice::Back),
5560
(KeyCode::Down, _) => {

ytflow-bin-shared/src/edit/views/plugin_type.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use anyhow::{Context, Result};
2-
use crossterm::event::{Event, KeyCode, KeyEvent};
2+
use crossterm::event::{Event, KeyCode, KeyEvent, KeyEventKind};
33
use tui::{
44
layout::{Constraint, Direction, Layout},
55
style::{Color, Style},
@@ -120,7 +120,12 @@ pub fn run_plugin_type_view(
120120
}
121121
}
122122

123-
if let Event::Key(KeyEvent { code, .. }) = crossterm::event::read().unwrap() {
123+
if let Event::Key(KeyEvent {
124+
code,
125+
kind: KeyEventKind::Press,
126+
..
127+
}) = crossterm::event::read().unwrap()
128+
{
124129
match code {
125130
KeyCode::Char('q') | KeyCode::Esc => break,
126131
KeyCode::Enter => select_confirm = true,

ytflow-bin-shared/src/edit/views/profile.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use anyhow::{anyhow, Context, Result};
2-
use crossterm::event::{Event, KeyCode, KeyEvent};
2+
use crossterm::event::{Event, KeyCode, KeyEvent, KeyEventKind};
33
use serde_bytes::ByteBuf;
44
use tui::{
55
layout::{Constraint, Direction, Layout},
@@ -117,7 +117,12 @@ pub fn run_profile_view(ctx: &mut edit::AppContext, id: ProfileId) -> Result<Nav
117117
}
118118
}
119119
}
120-
if let Event::Key(KeyEvent { code, .. }) = crossterm::event::read().unwrap() {
120+
if let Event::Key(KeyEvent {
121+
code,
122+
kind: KeyEventKind::Press,
123+
..
124+
}) = crossterm::event::read().unwrap()
125+
{
121126
match (code, plugin_state.selected()) {
122127
(KeyCode::Char('q') | KeyCode::Esc, _) => break,
123128
(KeyCode::Char('c'), _) => {

ytflow-bin-shared/src/edit/views/proxy_group.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use anyhow::{anyhow, bail, Context, Result};
22
use cbor4ii::core::Value as CborValue;
3-
use crossterm::event::{Event, KeyCode, KeyEvent};
3+
use crossterm::event::{Event, KeyCode, KeyEvent, KeyEventKind};
44
use serde::{Deserialize, Serialize};
55
use serde_bytes::ByteBuf;
66
use tui::{
@@ -106,7 +106,12 @@ pub fn run_proxy_group_view(ctx: &mut edit::AppContext, id: ProxyGroupId) -> Res
106106
}
107107
}
108108
}
109-
if let Event::Key(KeyEvent { code, .. }) = crossterm::event::read().unwrap() {
109+
if let Event::Key(KeyEvent {
110+
code,
111+
kind: KeyEventKind::Press,
112+
..
113+
}) = crossterm::event::read().unwrap()
114+
{
110115
match (code, proxy_state.selected()) {
111116
(KeyCode::Char('q') | KeyCode::Esc, _) => break,
112117
(KeyCode::Char('c'), _) => return Ok(NavChoice::ProxyTypeView(proxy_group.id)),

ytflow-bin-shared/src/edit/views/proxy_type.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::cell::Cell;
22

33
use anyhow::{Context, Result};
4-
use crossterm::event::{Event, KeyCode, KeyEvent};
4+
use crossterm::event::{Event, KeyCode, KeyEvent, KeyEventKind};
55
use tui::{
66
layout::{Constraint, Direction, Layout},
77
style::Style,
@@ -50,7 +50,12 @@ pub fn run_proxy_type_view(
5050
f.render_stateful_widget(type_list, main_chunk, &mut type_state);
5151
})?;
5252

53-
if let Event::Key(KeyEvent { code, .. }) = crossterm::event::read().unwrap() {
53+
if let Event::Key(KeyEvent {
54+
code,
55+
kind: KeyEventKind::Press,
56+
..
57+
}) = crossterm::event::read().unwrap()
58+
{
5459
match (code, type_state.selected()) {
5560
(KeyCode::Char('q') | KeyCode::Esc, _) => break,
5661
(KeyCode::Enter, Some(idx)) => {

0 commit comments

Comments
 (0)