mirror of
https://github.com/FliegendeWurst/cursive.git
synced 2024-11-27 11:16:03 +00:00
Fix compilation error on BLT backend
This commit is contained in:
parent
af4e55ed18
commit
5dfc27bd9f
@ -6,6 +6,7 @@
|
|||||||
extern crate bear_lib_terminal;
|
extern crate bear_lib_terminal;
|
||||||
|
|
||||||
use std::collections::HashSet;
|
use std::collections::HashSet;
|
||||||
|
use std::thread;
|
||||||
use std::time::{Duration, Instant};
|
use std::time::{Duration, Instant};
|
||||||
|
|
||||||
use self::bear_lib_terminal::geometry::Size;
|
use self::bear_lib_terminal::geometry::Size;
|
||||||
@ -13,7 +14,7 @@ use self::bear_lib_terminal::terminal::{
|
|||||||
self, state, Event as BltEvent, KeyCode,
|
self, state, Event as BltEvent, KeyCode,
|
||||||
};
|
};
|
||||||
use self::bear_lib_terminal::Color as BltColor;
|
use self::bear_lib_terminal::Color as BltColor;
|
||||||
use crossbeam_channel::{Receiver, Sender};
|
use crossbeam_channel::{self, Receiver, Sender};
|
||||||
|
|
||||||
use backend;
|
use backend;
|
||||||
use event::{Event, Key, MouseButton, MouseEvent};
|
use event::{Event, Key, MouseButton, MouseEvent};
|
||||||
@ -316,7 +317,7 @@ impl backend::Backend for Backend {
|
|||||||
|
|
||||||
fn start_input_thread(
|
fn start_input_thread(
|
||||||
&mut self, event_sink: Sender<Option<Event>>,
|
&mut self, event_sink: Sender<Option<Event>>,
|
||||||
input_request: Receiver<backend::InputRequest>,
|
input_requests: Receiver<backend::InputRequest>,
|
||||||
) {
|
) {
|
||||||
let receiver = self.inner_receiver.clone();
|
let receiver = self.inner_receiver.clone();
|
||||||
|
|
||||||
@ -332,14 +333,17 @@ impl backend::Backend for Backend {
|
|||||||
|
|
||||||
fn prepare_input(&mut self, input_request: backend::InputRequest) {
|
fn prepare_input(&mut self, input_request: backend::InputRequest) {
|
||||||
match input_request {
|
match input_request {
|
||||||
backend::InputRequest::Peek => event_sink.send(self.parse_next()),
|
backend::InputRequest::Peek => {
|
||||||
|
let event = self.parse_next();
|
||||||
|
self.inner_sender.send(event);
|
||||||
|
}
|
||||||
backend::InputRequest::Block => {
|
backend::InputRequest::Block => {
|
||||||
let timeout = ::std::time::Duration::from_millis(30);
|
let timeout = Duration::from_millis(30);
|
||||||
// Wait for up to `timeout_ms`.
|
// Wait for up to `timeout_ms`.
|
||||||
let start = Instant::now();
|
let start = Instant::now();
|
||||||
while start.elapsed() < timeout {
|
while start.elapsed() < timeout {
|
||||||
if let Some(event) = self.parse_next() {
|
if let Some(event) = self.parse_next() {
|
||||||
event_sink.send(Some(event));
|
self.inner_sender.send(Some(event));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -43,7 +43,6 @@ pub struct Cursive {
|
|||||||
cb_sink: Sender<Box<CbFunc>>,
|
cb_sink: Sender<Box<CbFunc>>,
|
||||||
|
|
||||||
event_source: Receiver<Option<Event>>,
|
event_source: Receiver<Option<Event>>,
|
||||||
event_sink: Sender<Option<Event>>,
|
|
||||||
|
|
||||||
// Sends true or false after each event.
|
// Sends true or false after each event.
|
||||||
input_trigger: Sender<backend::InputRequest>,
|
input_trigger: Sender<backend::InputRequest>,
|
||||||
@ -141,7 +140,7 @@ impl Cursive {
|
|||||||
let (input_sink, input_source) = crossbeam_channel::bounded(0);
|
let (input_sink, input_source) = crossbeam_channel::bounded(0);
|
||||||
|
|
||||||
let mut backend = backend_init();
|
let mut backend = backend_init();
|
||||||
backend.start_input_thread(event_sink.clone(), input_source);
|
backend.start_input_thread(event_sink, input_source);
|
||||||
|
|
||||||
Cursive {
|
Cursive {
|
||||||
fps: 0,
|
fps: 0,
|
||||||
@ -155,7 +154,6 @@ impl Cursive {
|
|||||||
cb_source,
|
cb_source,
|
||||||
cb_sink,
|
cb_sink,
|
||||||
event_source,
|
event_source,
|
||||||
event_sink,
|
|
||||||
backend,
|
backend,
|
||||||
input_trigger: input_sink,
|
input_trigger: input_sink,
|
||||||
expecting_event: false,
|
expecting_event: false,
|
||||||
|
Loading…
Reference in New Issue
Block a user