Updating Kludgine/Refactoring close

This commit is contained in:
Jonathan Johnson 2024-10-07 12:52:05 -07:00
parent f96a5d2055
commit 2ed140a0fe
No known key found for this signature in database
GPG key ID: A66D6A34D6620579
2 changed files with 23 additions and 30 deletions

30
Cargo.lock generated
View file

@ -562,9 +562,9 @@ dependencies = [
[[package]]
name = "bytemuck_derive"
version = "1.7.1"
version = "1.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0cc8b54b395f2fcfbb3d90c47b01c7f444d94d05bdeb775811dec868ac3bbc26"
checksum = "bcfcc3cd946cb52f0bbfdbbcfa2f4e24f75ebb6c0e1002f7c25904fada18b9ec"
dependencies = [
"proc-macro2",
"quote",
@ -1160,9 +1160,9 @@ dependencies = [
[[package]]
name = "figures"
version = "0.4.0"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03202a3576f662d11a8fe13ce5677c80b4fa2e8366ee77dfe42a187e2e23428e"
checksum = "097ad6ec659462a9d6efea9af358a9564e52d76981aa9d73343ab3c566d083c0"
dependencies = [
"bytemuck",
"euclid",
@ -1199,9 +1199,9 @@ dependencies = [
[[package]]
name = "font-types"
version = "0.6.0"
version = "0.7.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8f0189ccb084f77c5523e08288d418cbaa09c451a08515678a0aa265df9a8b60"
checksum = "dda6e36206148f69fc6ecb1bb6c0dedd7ee469f3db1d0dc2045beea28430ca43"
dependencies = [
"bytemuck",
]
@ -1729,7 +1729,7 @@ checksum = "e2db585e1d738fc771bf08a151420d3ed193d9d895a36df7f6f8a9456b911ddc"
[[package]]
name = "kludgine"
version = "0.11.0"
source = "git+https://github.com/khonsulabs/kludgine#3ce7d43f8870a3455f46ab2c2fba997ca36a1f60"
source = "git+https://github.com/khonsulabs/kludgine#0df62c716c13a93ee249b79d9c831933d0d49d99"
dependencies = [
"ahash",
"alot",
@ -2705,9 +2705,9 @@ dependencies = [
[[package]]
name = "proc-macro2"
version = "1.0.86"
version = "1.0.87"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5e719e8df665df0d1c8fbfd238015744736151d4445ec0836b8e628aae103b77"
checksum = "b3e4daa0dcf6feba26f985457cdf104d4b4256fc5a09547140f3631bb076b19a"
dependencies = [
"unicode-ident",
]
@ -2905,9 +2905,9 @@ dependencies = [
[[package]]
name = "read-fonts"
version = "0.20.0"
version = "0.22.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c141b9980e1150201b2a3a32879001c8f975fe313ec3df5471a9b5c79a880cd"
checksum = "fb94d9ac780fdcf9b6b252253f7d8f221379b84bd3573131139b383df69f85e1"
dependencies = [
"bytemuck",
"font-types",
@ -3204,9 +3204,9 @@ checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
[[package]]
name = "skrifa"
version = "0.20.0"
version = "0.22.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "abea4738067b1e628c6ce28b2c216c19e9ea95715cdb332680e821c3bec2ef23"
checksum = "8e1c44ad1f6c5bdd4eefed8326711b7dbda9ea45dfd36068c427d332aa382cbe"
dependencies = [
"bytemuck",
"read-fonts",
@ -3308,9 +3308,9 @@ checksum = "20e16a0f46cf5fd675563ef54f26e83e20f2366bcf027bcb3cc3ed2b98aaf2ca"
[[package]]
name = "swash"
version = "0.1.18"
version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93cdc334a50fcc2aa3f04761af3b28196280a6aaadb1ef11215c478ae32615ac"
checksum = "cbd59f3f359ddd2c95af4758c18270eddd9c730dde98598023cdabff472c2ca2"
dependencies = [
"skrifa",
"yazi",

View file

@ -1335,7 +1335,6 @@ struct OpenWindow<T> {
tree: Tree,
root: MountedWidget,
contents: Drawing,
should_close: bool,
cursor: CursorState,
mouse_buttons: AHashMap<DeviceId, AHashMap<MouseButton, WidgetId>>,
redraw_status: InvalidationStatus,
@ -1385,17 +1384,14 @@ where
T: WindowBehavior,
{
fn request_close(
should_close: &mut bool,
behavior: &mut T,
window: &mut RunningWindow<kludgine::app::Window<'_, WindowCommand>>,
) -> bool {
*should_close |= behavior.close_requested(window)
behavior.close_requested(window)
&& window
.close_requested
.as_ref()
.map_or(true, |close| close.invoke(()));
*should_close
.map_or(true, |close| close.invoke(()))
}
fn keyboard_activate_widget<W>(
@ -1622,7 +1618,7 @@ where
&& input.state.is_pressed()
&& self.behavior.close_requested(window)
{
self.should_close = true;
window.close();
window.set_needs_redraw();
}
HANDLED
@ -1773,7 +1769,6 @@ where
root,
tree,
contents: Drawing::default(),
should_close: false,
cursor: CursorState {
location: None,
widget: None,
@ -1970,7 +1965,7 @@ where
{
let cushy = self.app.cushy().clone();
let _guard = cushy.enter_runtime();
if self.behavior.close_requested(&mut RunningWindow::new(
let mut window = RunningWindow::new(
window,
kludgine.id(),
&self.redraw_status,
@ -1979,8 +1974,9 @@ where
&self.occluded,
self.inner_size.source(),
&self.close_requested,
)) {
self.should_close = true;
);
if self.behavior.close_requested(&mut window) {
window.close();
true
} else {
false
@ -2598,10 +2594,8 @@ where
&'pass mut self,
_window: kludgine::app::Window<'_, WindowCommand>,
graphics: &mut kludgine::RenderingGraphics<'_, 'pass>,
) -> bool {
) {
self.contents.render(1., graphics);
!self.should_close
}
fn initial_window_attributes(context: &Self::Context) -> kludgine::app::WindowAttributes {
@ -2628,7 +2622,6 @@ where
let cushy = self.app.cushy().clone();
let _guard = cushy.enter_runtime();
Self::request_close(
&mut self.should_close,
&mut self.behavior,
&mut RunningWindow::new(
window,