diff options
| author | MaxVerevkin <maxxverrr@gmail.com> | 2023-01-24 00:56:39 +0200 |
|---|---|---|
| committer | MaxVerevkin <maxxverrr@gmail.com> | 2023-01-24 00:56:39 +0200 |
| commit | b04f6e8190c691261c8eb94466d95c34ec6164a7 (patch) | |
| tree | 3c0988f45a65e74d368a0751030003449554124b /src/bar.rs | |
| parent | 0467b9f964f7ee91c0d679feedaf62626f6fe065 (diff) | |
| download | i3bar-mango-b04f6e8190c691261c8eb94466d95c34ec6164a7.tar.gz | |
update dependencies
Diffstat (limited to 'src/bar.rs')
| -rw-r--r-- | src/bar.rs | 22 |
1 files changed, 19 insertions, 3 deletions
@@ -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); } } |
