aboutsummaryrefslogtreecommitdiff
path: root/src/input
diff options
context:
space:
mode:
authorLin Xianyi <iynaix@gmail.com>2025-10-19 11:22:31 +0000
committerGitHub <noreply@github.com>2025-10-19 14:22:31 +0300
commit23cd5aa78a26ccf57c6a7993313e42a5c39d43d8 (patch)
treefff3ad5057850bf916c404cc95437e1058c56a20 /src/input
parent8c8447918f4fd7bc6c86a8622b1db52417fbbbbd (diff)
downloadniri-23cd5aa78a26ccf57c6a7993313e42a5c39d43d8.tar.gz
niri-23cd5aa78a26ccf57c6a7993313e42a5c39d43d8.tar.bz2
niri-23cd5aa78a26ccf57c6a7993313e42a5c39d43d8.zip
Add --path argument for niri msg screenshot* commands (#2126)
* Check for empty screenshot parent before creating Avoids a warning. * Add --path argument for niri msg screenshot* commands * fix --------- Co-authored-by: Ivan Molodetskikh <yalterz@gmail.com>
Diffstat (limited to 'src/input')
-rw-r--r--src/input/mod.rs47
1 files changed, 30 insertions, 17 deletions
diff --git a/src/input/mod.rs b/src/input/mod.rs
index 876295a2..23ea4b29 100644
--- a/src/input/mod.rs
+++ b/src/input/mod.rs
@@ -605,14 +605,17 @@ impl State {
self.niri.do_screen_transition(renderer, delay_ms);
});
}
- Action::ScreenshotScreen(write_to_disk, show_pointer) => {
+ Action::ScreenshotScreen(write_to_disk, show_pointer, path) => {
let active = self.niri.layout.active_output().cloned();
if let Some(active) = active {
self.backend.with_primary_renderer(|renderer| {
- if let Err(err) =
- self.niri
- .screenshot(renderer, &active, write_to_disk, show_pointer)
- {
+ if let Err(err) = self.niri.screenshot(
+ renderer,
+ &active,
+ write_to_disk,
+ show_pointer,
+ path,
+ ) {
warn!("error taking screenshot: {err:?}");
}
});
@@ -636,32 +639,42 @@ impl State {
self.niri.screenshot_ui.toggle_pointer();
self.niri.queue_redraw_all();
}
- Action::Screenshot(show_cursor) => {
- self.open_screenshot_ui(show_cursor);
+ Action::Screenshot(show_cursor, path) => {
+ self.open_screenshot_ui(show_cursor, path);
}
- Action::ScreenshotWindow(write_to_disk) => {
+ Action::ScreenshotWindow(write_to_disk, path) => {
let focus = self.niri.layout.focus_with_output();
if let Some((mapped, output)) = focus {
self.backend.with_primary_renderer(|renderer| {
- if let Err(err) =
- self.niri
- .screenshot_window(renderer, output, mapped, write_to_disk)
- {
+ if let Err(err) = self.niri.screenshot_window(
+ renderer,
+ output,
+ mapped,
+ write_to_disk,
+ path,
+ ) {
warn!("error taking screenshot: {err:?}");
}
});
}
}
- Action::ScreenshotWindowById { id, write_to_disk } => {
+ Action::ScreenshotWindowById {
+ id,
+ write_to_disk,
+ path,
+ } => {
let mut windows = self.niri.layout.windows();
let window = windows.find(|(_, m)| m.id().get() == id);
if let Some((Some(monitor), mapped)) = window {
let output = monitor.output();
self.backend.with_primary_renderer(|renderer| {
- if let Err(err) =
- self.niri
- .screenshot_window(renderer, output, mapped, write_to_disk)
- {
+ if let Err(err) = self.niri.screenshot_window(
+ renderer,
+ output,
+ mapped,
+ write_to_disk,
+ path,
+ ) {
warn!("error taking screenshot: {err:?}");
}
});