aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-05-09 15:41:57 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-05-09 15:41:57 +0300
commitfb5c5204e83f44b1aee20aa9d34bfd2b8a804987 (patch)
tree18603bd41afb548696ef0804c2ef1d8bb9fd7890
parentd207cd385b12e9c6b52e3865c74af5ec5c042552 (diff)
downloadniri-fb5c5204e83f44b1aee20aa9d34bfd2b8a804987.tar.gz
niri-fb5c5204e83f44b1aee20aa9d34bfd2b8a804987.tar.bz2
niri-fb5c5204e83f44b1aee20aa9d34bfd2b8a804987.zip
Extract confirm_screenshot()
-rw-r--r--src/input/mod.rs24
-rw-r--r--src/niri.rs25
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 {