diff options
| author | Ivan Molodetskikh <yalterz@gmail.com> | 2025-05-09 15:41:57 +0300 |
|---|---|---|
| committer | Ivan Molodetskikh <yalterz@gmail.com> | 2025-05-09 15:41:57 +0300 |
| commit | fb5c5204e83f44b1aee20aa9d34bfd2b8a804987 (patch) | |
| tree | 18603bd41afb548696ef0804c2ef1d8bb9fd7890 | |
| parent | d207cd385b12e9c6b52e3865c74af5ec5c042552 (diff) | |
| download | niri-fb5c5204e83f44b1aee20aa9d34bfd2b8a804987.tar.gz niri-fb5c5204e83f44b1aee20aa9d34bfd2b8a804987.tar.bz2 niri-fb5c5204e83f44b1aee20aa9d34bfd2b8a804987.zip | |
Extract confirm_screenshot()
| -rw-r--r-- | src/input/mod.rs | 24 | ||||
| -rw-r--r-- | src/niri.rs | 25 |
2 files changed, 26 insertions, 23 deletions
diff --git a/src/input/mod.rs b/src/input/mod.rs index 2fd5ab55..a23c2e13 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -593,29 +593,7 @@ impl State { } } Action::ConfirmScreenshot { write_to_disk } => { - if !self.niri.screenshot_ui.is_open() { - return; - } - - self.backend.with_primary_renderer(|renderer| { - match self.niri.screenshot_ui.capture(renderer) { - Ok((size, pixels)) => { - if let Err(err) = self.niri.save_screenshot(size, pixels, write_to_disk) - { - warn!("error saving screenshot: {err:?}"); - } - } - Err(err) => { - warn!("error capturing screenshot: {err:?}"); - } - } - }); - - self.niri.screenshot_ui.close(); - self.niri - .cursor_manager - .set_cursor_image(CursorImageStatus::default_named()); - self.niri.queue_redraw_all(); + self.confirm_screenshot(write_to_disk); } Action::CancelScreenshot => { if !self.niri.screenshot_ui.is_open() { diff --git a/src/niri.rs b/src/niri.rs index 54a3dd58..c203eb78 100644 --- a/src/niri.rs +++ b/src/niri.rs @@ -1744,6 +1744,31 @@ impl State { self.niri.queue_redraw_all(); } + pub fn confirm_screenshot(&mut self, write_to_disk: bool) { + if !self.niri.screenshot_ui.is_open() { + return; + } + + self.backend.with_primary_renderer(|renderer| { + match self.niri.screenshot_ui.capture(renderer) { + Ok((size, pixels)) => { + if let Err(err) = self.niri.save_screenshot(size, pixels, write_to_disk) { + warn!("error saving screenshot: {err:?}"); + } + } + Err(err) => { + warn!("error capturing screenshot: {err:?}"); + } + } + }); + + self.niri.screenshot_ui.close(); + self.niri + .cursor_manager + .set_cursor_image(CursorImageStatus::default_named()); + self.niri.queue_redraw_all(); + } + #[cfg(feature = "xdp-gnome-screencast")] pub fn on_pw_msg(&mut self, msg: PwToNiri) { match msg { |
