aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-03-15 11:22:30 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-03-15 11:22:30 +0300
commit9e560e7e607638da4f47b6dfef5a83b18711f75d (patch)
tree2cf9f163e143e828f2bf1ee8966777f449d6a679 /src
parentcee2ec7ab73284193c04f01309219e0a5ef67a25 (diff)
downloadniri-9e560e7e607638da4f47b6dfef5a83b18711f75d.tar.gz
niri-9e560e7e607638da4f47b6dfef5a83b18711f75d.tar.bz2
niri-9e560e7e607638da4f47b6dfef5a83b18711f75d.zip
Move CastTarget to src/niri.rs
Diffstat (limited to 'src')
-rw-r--r--src/handlers/compositor.rs8
-rw-r--r--src/handlers/xdg_shell.rs10
-rw-r--r--src/niri.rs13
-rw-r--r--src/pw_utils.rs10
4 files changed, 19 insertions, 22 deletions
diff --git a/src/handlers/compositor.rs b/src/handlers/compositor.rs
index 43a405ea..1547a34d 100644
--- a/src/handlers/compositor.rs
+++ b/src/handlers/compositor.rs
@@ -21,7 +21,7 @@ use smithay::{delegate_compositor, delegate_shm};
use super::xdg_shell::add_mapped_toplevel_pre_commit_hook;
use crate::handlers::XDG_ACTIVATION_TOKEN_TIMEOUT;
use crate::layout::{ActivateWindow, AddWindowTarget};
-use crate::niri::{ClientState, LockState, State};
+use crate::niri::{CastTarget, ClientState, LockState, State};
use crate::utils::transaction::Transaction;
use crate::utils::{is_mapped, send_scale_transform};
use crate::window::{InitialConfigureState, Mapped, ResolvedWindowRules, Unmapped};
@@ -220,7 +220,6 @@ impl CompositorHandler for State {
let window = mapped.window.clone();
let output = output.cloned();
- #[cfg(feature = "xdp-gnome-screencast")]
let id = mapped.id();
// This is a commit of a previously-mapped toplevel.
@@ -246,11 +245,8 @@ impl CompositorHandler for State {
let active_window = self.niri.layout.focus().map(|m| &m.window);
let was_active = active_window == Some(&window);
- #[cfg(feature = "xdp-gnome-screencast")]
self.niri
- .stop_casts_for_target(crate::pw_utils::CastTarget::Window {
- id: id.get(),
- });
+ .stop_casts_for_target(CastTarget::Window { id: id.get() });
self.niri.layout.remove_window(&window, transaction.clone());
self.add_default_dmabuf_pre_commit_hook(surface);
diff --git a/src/handlers/xdg_shell.rs b/src/handlers/xdg_shell.rs
index 0c757c92..6d06fe91 100644
--- a/src/handlers/xdg_shell.rs
+++ b/src/handlers/xdg_shell.rs
@@ -43,7 +43,7 @@ use crate::input::resize_grab::ResizeGrab;
use crate::input::touch_move_grab::TouchMoveGrab;
use crate::input::touch_resize_grab::TouchResizeGrab;
use crate::input::{PointerOrTouchStartData, DOUBLE_CLICK_TIME};
-use crate::niri::{PopupGrabState, State};
+use crate::niri::{CastTarget, PopupGrabState, State};
use crate::utils::transaction::Transaction;
use crate::utils::{
get_monotonic_time, output_matches_name, send_scale_transform, update_tiled_state, ResizeEdge,
@@ -647,11 +647,9 @@ impl XdgShellHandler for State {
let window = mapped.window.clone();
let output = output.cloned();
- #[cfg(feature = "xdp-gnome-screencast")]
- self.niri
- .stop_casts_for_target(crate::pw_utils::CastTarget::Window {
- id: mapped.id().get(),
- });
+ self.niri.stop_casts_for_target(CastTarget::Window {
+ id: mapped.id().get(),
+ });
self.backend.with_primary_renderer(|renderer| {
self.niri.layout.store_unmap_snapshot(renderer, &window);
diff --git a/src/niri.rs b/src/niri.rs
index 59e3edf7..3ff71d09 100644
--- a/src/niri.rs
+++ b/src/niri.rs
@@ -47,7 +47,7 @@ use smithay::desktop::{
use smithay::input::keyboard::Layout as KeyboardLayout;
use smithay::input::pointer::{CursorIcon, CursorImageStatus, CursorImageSurfaceData, MotionEvent};
use smithay::input::{Seat, SeatState};
-use smithay::output::{self, Output, OutputModeSource, PhysicalProperties, Subpixel};
+use smithay::output::{self, Output, OutputModeSource, PhysicalProperties, Subpixel, WeakOutput};
use smithay::reexports::calloop::generic::Generic;
use smithay::reexports::calloop::timer::{TimeoutAction, Timer};
use smithay::reexports::calloop::{
@@ -138,7 +138,7 @@ use crate::protocols::screencopy::{Screencopy, ScreencopyBuffer, ScreencopyManag
use crate::protocols::virtual_pointer::VirtualPointerManagerState;
use crate::pw_utils::{Cast, PipeWire};
#[cfg(feature = "xdp-gnome-screencast")]
-use crate::pw_utils::{CastSizeChange, CastTarget, PwToNiri};
+use crate::pw_utils::{CastSizeChange, PwToNiri};
use crate::render_helpers::debug::draw_opaque_regions;
use crate::render_helpers::primary_gpu_texture::PrimaryGpuTextureRenderElement;
use crate::render_helpers::renderer::NiriRenderer;
@@ -508,6 +508,12 @@ pub enum CenterCoords {
Both,
}
+#[derive(Clone, PartialEq, Eq)]
+pub enum CastTarget {
+ Output(WeakOutput),
+ Window { id: u64 },
+}
+
impl RedrawState {
fn queue_redraw(self) -> Self {
match self {
@@ -4584,6 +4590,9 @@ impl Niri {
}
}
+ #[cfg(not(feature = "xdp-gnome-screencast"))]
+ pub fn stop_casts_for_target(&mut self, _target: CastTarget) {}
+
#[cfg(feature = "xdp-gnome-screencast")]
pub fn stop_casts_for_target(&mut self, target: CastTarget) {
let _span = tracy_client::span!("Niri::stop_casts_for_target");
diff --git a/src/pw_utils.rs b/src/pw_utils.rs
index 5cc16d85..555da333 100644
--- a/src/pw_utils.rs
+++ b/src/pw_utils.rs
@@ -36,7 +36,7 @@ use smithay::backend::drm::DrmDeviceFd;
use smithay::backend::renderer::damage::OutputDamageTracker;
use smithay::backend::renderer::element::RenderElement;
use smithay::backend::renderer::gles::GlesRenderer;
-use smithay::output::{Output, OutputModeSource, WeakOutput};
+use smithay::output::{Output, OutputModeSource};
use smithay::reexports::calloop::generic::Generic;
use smithay::reexports::calloop::{Interest, LoopHandle, Mode, PostAction};
use smithay::reexports::gbm::Modifier;
@@ -44,7 +44,7 @@ use smithay::utils::{Physical, Scale, Size, Transform};
use zbus::object_server::SignalEmitter;
use crate::dbus::mutter_screen_cast::{self, CursorMode};
-use crate::niri::State;
+use crate::niri::{CastTarget, State};
use crate::render_helpers::render_to_dmabuf;
use crate::utils::get_monotonic_time;
@@ -109,12 +109,6 @@ pub enum CastSizeChange {
Pending,
}
-#[derive(Clone, PartialEq, Eq)]
-pub enum CastTarget {
- Output(WeakOutput),
- Window { id: u64 },
-}
-
macro_rules! make_params {
($params:ident, $formats:expr, $size:expr, $refresh:expr, $alpha:expr) => {
let mut b1 = Vec::new();