diff --git a/Cargo.toml b/Cargo.toml index 3f0b211..a1ed26e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,16 +7,8 @@ resolver = "2" publish = false [dependencies] -kas = "0.15.0" +kas = "0.16.0" chrono = "0.4" env_logger = "0.11.8" pest = "2.1" pest_derive = "2.1" - -[patch.crates-io.kas] -git = "https://github.com/kas-gui/kas.git" -rev = "4bf71367f6a57c727a689097302de40274f5830a" - -[patch.crates-io.kas-text] -git = "https://github.com/kas-gui/kas-text.git" -rev = "0bc2629df690ecfd562a7bf7b6ac096ad0d8f1a9" diff --git a/src/cells.rs b/src/cells.rs index 92ea92f..28336ee 100644 --- a/src/cells.rs +++ b/src/cells.rs @@ -12,6 +12,7 @@ use kas::widgets::{EditBox, EditField, EditGuard, ScrollBars}; use kas::{prelude::*, TextOrSource}; use std::collections::HashMap; use std::fmt; +use std::ops::Range; #[derive(Copy, Clone, Eq, PartialEq, Debug, Default, Hash)] pub struct ColKey(u8); @@ -343,7 +344,13 @@ impl DataClerk for Clerk { type Item = Cell; type Token = Key; - fn update(&mut self, _: &mut ConfigCx<'_>, _: Id, _: &Self::Data) -> DataChanges { + fn update( + &mut self, + _: &mut ConfigCx<'_>, + _: Id, + _: Range, + _: &Self::Data, + ) -> DataChanges { DataChanges::Any } diff --git a/src/counter.rs b/src/counter.rs index 639d6a1..d4fac1b 100644 --- a/src/counter.rs +++ b/src/counter.rs @@ -19,5 +19,5 @@ pub fn window() -> Window<()> { Button::label_msg("&Count", Incr).map_any(), ]; let ui = ui.with_state(0).on_message(|_, count, Incr| *count += 1); - Window::new(ui, "Counter") + Window::new(ui, "Counter").escapable() } diff --git a/src/crud.rs b/src/crud.rs index 92224f4..61556b7 100644 --- a/src/crud.rs +++ b/src/crud.rs @@ -5,6 +5,8 @@ //! Create Read Update Delete +use std::ops::Range; + use kas::dir::Down; use kas::view::filter::{ContainsCaseInsensitive, Filter, FilterValue, KeystrokeGuard, SetFilter}; use kas::view::{DataChanges, DataClerk, DataLen, Driver, ListView, SelectionMsg, TokenChanges}; @@ -128,7 +130,13 @@ impl DataClerk for EntriesClerk { type Item = Entry; type Token = usize; - fn update(&mut self, _: &mut ConfigCx, _: Id, filter: &Self::Data) -> DataChanges { + fn update( + &mut self, + _: &mut ConfigCx, + _: Id, + _: Range, + filter: &Self::Data, + ) -> DataChanges { // TODO(opt) determine when updates are a no-op and return DataChanges::None self.filtered_entries = self diff --git a/src/flight_booker.rs b/src/flight_booker.rs index fc719be..d618aed 100644 --- a/src/flight_booker.rs +++ b/src/flight_booker.rs @@ -179,5 +179,5 @@ pub fn window() -> Window<()> { cx.add_window::<()>(MessageBox::new(msg).into_window("Booker result")); }); - Window::new(ui, "Flight Booker") + Window::new(ui, "Flight Booker").escapable() } diff --git a/src/main.rs b/src/main.rs index 0430d03..7b08354 100644 --- a/src/main.rs +++ b/src/main.rs @@ -62,7 +62,7 @@ fn main() -> Result<(), kas::runner::Error> { } } }; - let window = Window::new(ui, "7GUIs Launcher"); + let window = Window::new(ui, "7GUIs Launcher").escapable(); let theme = kas::theme::FlatTheme::new(); kas::runner::Runner::with_theme(theme) diff --git a/src/temp_conv.rs b/src/temp_conv.rs index 54d47d2..cf18510 100644 --- a/src/temp_conv.rs +++ b/src/temp_conv.rs @@ -49,5 +49,5 @@ pub fn window() -> Window<()> { "Fahrenheit", ]; let ui = Adapt::new(ui, Temperature::default()).on_message(|_, temp, msg| temp.handle(msg)); - Window::new(ui, "Temperature Converter") + Window::new(ui, "Temperature Converter").escapable() } diff --git a/src/timer.rs b/src/timer.rs index ac48b03..683b45a 100644 --- a/src/timer.rs +++ b/src/timer.rs @@ -80,5 +80,5 @@ pub fn window() -> Window<()> { cx.request_timer(TIMER_ID, TIMER_SLEEP); }); - Window::new(ui, "Timer") + Window::new(ui, "Timer").escapable() }