@@ -218,10 +226,8 @@
-
diff --git a/wayvr/src/overlays/keyboard/builder.rs b/wayvr/src/overlays/keyboard/builder.rs
index 4b33046..874d851 100644
--- a/wayvr/src/overlays/keyboard/builder.rs
+++ b/wayvr/src/overlays/keyboard/builder.rs
@@ -19,6 +19,7 @@ use wgui::{
drawing::{self, Color},
event::{self, CallbackMetadata, EventAlterables, EventListenerKind},
layout::LayoutUpdateParams,
+ log::LogErr,
parser::{Fetchable, ParseDocumentParams},
renderer_vk::util,
taffy::{self, prelude::length},
@@ -284,14 +285,30 @@ pub(super) fn create_keyboard_panel(
&doc_params,
)?;
- if elems_changed {
- panel.process_custom_elems(app);
- }
-
match event_data {
OverlayEventData::SettingsChanged => {
panel.state.alt_modifier =
alt_modifier_to_key(app.session.config.keyboard_middle_click_mode);
+
+ if app.session.config.clock_12h != panel.state.clock_12h {
+ panel.state.clock_12h = app.session.config.clock_12h;
+
+ if let Ok(clock_root) = panel
+ .parser_state
+ .get_widget_id("clock_root")
+ .log_warn("keyboard.xml may be out of date")
+ {
+ panel.layout.remove_children(clock_root);
+ panel.parser_state.instantiate_template(
+ &doc_params,
+ "Clock",
+ &mut panel.layout,
+ clock_root,
+ Default::default(),
+ )?;
+ elems_changed = true;
+ }
+ }
}
OverlayEventData::CustomCommand { element, command } => {
@@ -303,6 +320,10 @@ pub(super) fn create_keyboard_panel(
_ => {}
}
+ if elems_changed {
+ panel.process_custom_elems(app);
+ }
+
panel.layout.process_alterables(alterables)?;
Ok(())
}
diff --git a/wayvr/src/overlays/keyboard/mod.rs b/wayvr/src/overlays/keyboard/mod.rs
index 2f69c3d..d5877ff 100644
--- a/wayvr/src/overlays/keyboard/mod.rs
+++ b/wayvr/src/overlays/keyboard/mod.rs
@@ -55,6 +55,7 @@ pub fn create_keyboard(app: &mut AppState, wayland: bool) -> anyhow::Result
,
overlay_list: OverlayList,
set_list: SetList,
+ clock_12h: bool,
}
macro_rules! take_and_leave_default {
@@ -343,6 +345,7 @@ impl KeyboardState {
processes: take_and_leave_default!(&mut self.processes),
overlay_list: OverlayList::default(),
set_list: SetList::default(),
+ clock_12h: self.clock_12h,
}
}
}