diff options
Diffstat (limited to 'src/ui')
-rw-r--r-- | src/ui/views/tui_textfield.rs | 2 | ||||
-rw-r--r-- | src/ui/views/tui_worker_view.rs | 28 | ||||
-rw-r--r-- | src/ui/widgets/tui_worker.rs | 14 |
3 files changed, 20 insertions, 24 deletions
diff --git a/src/ui/views/tui_textfield.rs b/src/ui/views/tui_textfield.rs index c341724..b2e72cb 100644 --- a/src/ui/views/tui_textfield.rs +++ b/src/ui/views/tui_textfield.rs @@ -72,8 +72,6 @@ impl<'a> TuiTextField<'a> { backend: &mut TuiBackend, context: &mut JoshutoContext, ) -> Option<String> { - context.flush_event(); - let mut line_buffer = line_buffer::LineBuffer::with_capacity(255); let completer = FilenameCompleter::new(); diff --git a/src/ui/views/tui_worker_view.rs b/src/ui/views/tui_worker_view.rs index 09b43b9..3f19fe3 100644 --- a/src/ui/views/tui_worker_view.rs +++ b/src/ui/views/tui_worker_view.rs @@ -3,7 +3,7 @@ use termion::event::{Event, Key}; use tui::layout::Rect; use crate::context::JoshutoContext; -use crate::ui::widgets::TuiWorker; +use crate::ui::widgets::{TuiTopBar, TuiWorker}; use crate::ui::TuiBackend; use crate::util::event::JoshutoEvent; use crate::util::input; @@ -16,19 +16,31 @@ impl TuiWorkerView { } pub fn display(&self, context: &mut JoshutoContext, backend: &mut TuiBackend) { - context.flush_event(); let terminal = backend.terminal_mut(); loop { let _ = terminal.draw(|frame| { - let f_size: Rect = frame.size(); - if f_size.height == 0 { + let area: Rect = frame.size(); + if area.height == 0 { return; } - { - let view = TuiWorker::new(&context); - frame.render_widget(view, f_size); - } + + let rect = Rect { + height: 1, + ..area + }; + let curr_tab = context.tab_context_ref().curr_tab_ref(); + let view = TuiTopBar::new(context, curr_tab.pwd()); + frame.render_widget(view, rect); + + let rect = Rect { + x: 0, + y: 1, + width: area.width, + height: area.height - 1, + }; + let view = TuiWorker::new(&context); + frame.render_widget(view, rect); }); if let Ok(event) = context.poll_event() { diff --git a/src/ui/widgets/tui_worker.rs b/src/ui/widgets/tui_worker.rs index 3033bb1..f4fad7f 100644 --- a/src/ui/widgets/tui_worker.rs +++ b/src/ui/widgets/tui_worker.rs @@ -5,7 +5,6 @@ use tui::widgets::Widget; use crate::context::JoshutoContext; use crate::io::FileOp; -use crate::ui::widgets::TuiTopBar; pub struct TuiWorker<'a> { pub context: &'a JoshutoContext, @@ -19,19 +18,6 @@ impl<'a> TuiWorker<'a> { impl<'a> Widget for TuiWorker<'a> { fn render(self, area: Rect, buf: &mut Buffer) { - let f_size = area; - - let topbar_width = f_size.width; - - let curr_tab = self.context.tab_context_ref().curr_tab_ref(); - let rect = Rect { - x: 0, - y: 0, - width: topbar_width, - height: 1, - }; - TuiTopBar::new(self.context, curr_tab.pwd()).render(rect, buf); - // TODO: could be styled better match self.context.worker_ref() { |