summaryrefslogtreecommitdiff
path: root/src/bar.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bar.rs')
-rw-r--r--src/bar.rs22
1 files changed, 19 insertions, 3 deletions
diff --git a/src/bar.rs b/src/bar.rs
index cca3c30..5bfa020 100644
--- a/src/bar.rs
+++ b/src/bar.rs
@@ -65,7 +65,18 @@ impl Bar {
};
river_control.add_argument(conn, cmd.into());
river_control.add_argument(conn, CString::new((1u32 << tag).to_string()).unwrap());
- river_control.run_command(conn, seat);
+ river_control.run_command_with_cb(
+ conn,
+ seat,
+ |conn, state, _, event| match event {
+ zriver_command_callback_v1::Event::Success(msg) => {
+ info!("river_control: {msg:?}")
+ }
+ zriver_command_callback_v1::Event::Failure(msg) => {
+ state.set_error(conn, msg.to_string_lossy())
+ }
+ },
+ );
}
} else if let Some((name, instance)) = self.blocks_btns.click(x) {
if let Some(cmd) = &mut ss.status_cmd {
@@ -214,7 +225,7 @@ impl Bar {
height_f,
);
- self.surface.attach(conn, buffer, 0, 0);
+ self.surface.attach(conn, buffer.wl, 0, 0);
self.surface
.damage_buffer(conn, 0, 0, width * self.scale, height * self.scale);
self.surface.commit(conn);
@@ -222,7 +233,12 @@ impl Bar {
pub fn request_frame(&mut self, conn: &mut Connection<State>) {
if self.configured && self.frame_cb.is_none() {
- self.frame_cb = Some(self.surface.frame(conn));
+ self.frame_cb = Some(self.surface.frame_with_cb(conn, |conn, state, cb, _| {
+ if let Some(bar) = state.bars.iter_mut().find(|bar| bar.frame_cb == Some(cb)) {
+ bar.frame_cb = None;
+ bar.frame(conn, &mut state.shared_state);
+ }
+ }));
self.surface.commit(conn);
}
}