aboutsummaryrefslogtreecommitdiff
path: root/src/layout/mod.rs
diff options
context:
space:
mode:
authorIvan Molodetskikh <yalterz@gmail.com>2025-03-01 09:45:57 +0300
committerIvan Molodetskikh <yalterz@gmail.com>2025-03-10 07:59:14 +0300
commitb351f6ff220560d96a260d8dd3ad794000923481 (patch)
treef2bd1a777fe9f932fea2cfeba3677cbb39b634eb /src/layout/mod.rs
parent12817a682d666e81e30b5a723d6419baf74cdb1c (diff)
downloadniri-b351f6ff220560d96a260d8dd3ad794000923481.tar.gz
niri-b351f6ff220560d96a260d8dd3ad794000923481.tar.bz2
niri-b351f6ff220560d96a260d8dd3ad794000923481.zip
Keep track of RenderElementStates in offscreens
This both avoids sending frame callbacks to surfaces invisible on the offscreen (fixing Firefox with subsurface compositing in the process), and fixes searching for split popups during the resize animation.
Diffstat (limited to 'src/layout/mod.rs')
-rw-r--r--src/layout/mod.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/layout/mod.rs b/src/layout/mod.rs
index ac83a0cf..dc7daa65 100644
--- a/src/layout/mod.rs
+++ b/src/layout/mod.rs
@@ -45,7 +45,6 @@ use niri_config::{
use niri_ipc::{ColumnDisplay, PositionChange, SizeChange};
use scrolling::{Column, ColumnWidth, InsertHint, InsertPosition};
use smithay::backend::renderer::element::surface::WaylandSurfaceRenderElement;
-use smithay::backend::renderer::element::Id;
use smithay::backend::renderer::gles::{GlesRenderer, GlesTexture};
use smithay::output::{self, Output};
use smithay::reexports::wayland_server::protocol::wl_surface::WlSurface;
@@ -59,6 +58,7 @@ use self::workspace::{OutputId, Workspace};
use crate::animation::Clock;
use crate::layout::scrolling::ScrollDirection;
use crate::niri_render_elements;
+use crate::render_helpers::offscreen::OffscreenData;
use crate::render_helpers::renderer::NiriRenderer;
use crate::render_helpers::snapshot::RenderSnapshot;
use crate::render_helpers::solid_color::{SolidColorBuffer, SolidColorRenderElement};
@@ -194,7 +194,7 @@ pub trait LayoutElement {
fn set_preferred_scale_transform(&self, scale: output::Scale, transform: Transform);
fn output_enter(&self, output: &Output);
fn output_leave(&self, output: &Output);
- fn set_offscreen_element_id(&self, id: Option<Id>);
+ fn set_offscreen_data(&self, data: Option<OffscreenData>);
fn set_activated(&mut self, active: bool);
fn set_active_in_column(&mut self, active: bool);
fn set_floating(&mut self, floating: bool);