shell: Fix missing titlebars
This commit is contained in:
parent
659933b039
commit
5d173a46a6
11 changed files with 208 additions and 38 deletions
|
|
@ -1,7 +1,9 @@
|
|||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
|
||||
#[cfg(feature = "debug")]
|
||||
use crate::backend::render::element::AsGlowRenderer;
|
||||
use crate::{
|
||||
backend::render::{element::CosmicElement, workspace_elements, CLEAR_COLOR},
|
||||
backend::render::{workspace_elements, CLEAR_COLOR},
|
||||
config::OutputConfig,
|
||||
shell::Shell,
|
||||
state::{BackendData, ClientState, Common, Data, Fps},
|
||||
|
|
@ -944,15 +946,6 @@ impl Surface {
|
|||
return Ok(());
|
||||
}
|
||||
|
||||
self.fps.start();
|
||||
#[cfg(feature = "debug")]
|
||||
if let Some(rd) = self.fps.rd.as_mut() {
|
||||
rd.start_frame_capture(
|
||||
renderer.glow_renderer().egl_context().get_context_handle(),
|
||||
std::ptr::null(),
|
||||
);
|
||||
}
|
||||
|
||||
let compositor = self.surface.as_mut().unwrap();
|
||||
let (render_node, mut renderer) = match render_node {
|
||||
Some((render_node, allocator)) => (
|
||||
|
|
@ -963,8 +956,17 @@ impl Surface {
|
|||
None => (target_node, api.single_renderer(&target_node).unwrap()),
|
||||
};
|
||||
|
||||
self.fps.start();
|
||||
#[cfg(feature = "debug")]
|
||||
if let Some(rd) = self.fps.rd.as_mut() {
|
||||
rd.start_frame_capture(
|
||||
renderer.glow_renderer().egl_context().get_context_handle(),
|
||||
std::ptr::null(),
|
||||
);
|
||||
}
|
||||
|
||||
let handle = state.shell.workspaces.active(&self.output).handle;
|
||||
let elements: Vec<CosmicElement<GlMultiRenderer<'_, '_>>> = workspace_elements(
|
||||
let elements = workspace_elements(
|
||||
Some(&render_node),
|
||||
&mut renderer,
|
||||
state,
|
||||
|
|
@ -973,7 +975,10 @@ impl Surface {
|
|||
CursorMode::All,
|
||||
&mut Some(&mut self.fps),
|
||||
false,
|
||||
)?;
|
||||
)
|
||||
.map_err(|err| {
|
||||
anyhow::format_err!("Failed to accumulate elements for rendering: {:?}", err)
|
||||
})?;
|
||||
self.fps.elements();
|
||||
|
||||
let res = compositor.render_frame::<_, _, Gles2Renderbuffer>(
|
||||
|
|
|
|||
|
|
@ -12,7 +12,8 @@ use crate::{
|
|||
};
|
||||
use crate::{
|
||||
shell::{
|
||||
layout::floating::SeatMoveGrabState, CosmicMappedRenderElement, WorkspaceRenderElement,
|
||||
element::window::CosmicWindowRenderElement, layout::floating::SeatMoveGrabState,
|
||||
CosmicMappedRenderElement,
|
||||
},
|
||||
state::{Common, Fps},
|
||||
utils::prelude::SeatExt,
|
||||
|
|
@ -169,6 +170,7 @@ where
|
|||
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
|
||||
<R as Renderer>::TextureId: Clone + 'static,
|
||||
CosmicMappedRenderElement<R>: RenderElement<R>,
|
||||
CosmicWindowRenderElement<R>: RenderElement<R>,
|
||||
E: From<CursorRenderElement<R>> + From<CosmicMappedRenderElement<R>>,
|
||||
{
|
||||
#[cfg(feature = "debug")]
|
||||
|
|
@ -222,7 +224,7 @@ where
|
|||
elements
|
||||
}
|
||||
|
||||
pub fn workspace_elements<R, E>(
|
||||
pub fn workspace_elements<R>(
|
||||
_gpu: Option<&DrmNode>,
|
||||
renderer: &mut R,
|
||||
state: &mut Common,
|
||||
|
|
@ -231,19 +233,18 @@ pub fn workspace_elements<R, E>(
|
|||
cursor_mode: CursorMode,
|
||||
_fps: &mut Option<&mut Fps>,
|
||||
exclude_workspace_overview: bool,
|
||||
) -> Result<Vec<E>, OutputNoMode>
|
||||
) -> Result<Vec<CosmicElement<R>>, RenderError<R>>
|
||||
where
|
||||
R: Renderer + ImportAll + ImportMem + AsGlowRenderer,
|
||||
<R as Renderer>::TextureId: Clone + 'static,
|
||||
<R as Renderer>::Error: From<Gles2Error>,
|
||||
CosmicMappedRenderElement<R>: RenderElement<R>,
|
||||
E: From<CursorRenderElement<R>>
|
||||
+ From<CosmicMappedRenderElement<R>>
|
||||
+ From<WorkspaceRenderElement<R>>,
|
||||
CosmicWindowRenderElement<R>: RenderElement<R>,
|
||||
{
|
||||
#[cfg(feature = "debug")]
|
||||
puffin::profile_function!();
|
||||
|
||||
let mut elements: Vec<E> = cursor_elements(renderer, state, output, cursor_mode);
|
||||
let mut elements = cursor_elements(renderer, state, output, cursor_mode);
|
||||
|
||||
#[cfg(feature = "debug")]
|
||||
{
|
||||
|
|
@ -336,6 +337,7 @@ where
|
|||
<R as Renderer>::Error: From<Gles2Error>,
|
||||
CosmicElement<R>: RenderElement<R>,
|
||||
CosmicMappedRenderElement<R>: RenderElement<R>,
|
||||
CosmicWindowRenderElement<R>: RenderElement<R>,
|
||||
Source: Clone,
|
||||
{
|
||||
let handle = state.shell.workspaces.active(output).handle;
|
||||
|
|
@ -385,6 +387,7 @@ where
|
|||
<R as Renderer>::Error: From<Gles2Error>,
|
||||
CosmicElement<R>: RenderElement<R>,
|
||||
CosmicMappedRenderElement<R>: RenderElement<R>,
|
||||
CosmicWindowRenderElement<R>: RenderElement<R>,
|
||||
Source: Clone,
|
||||
{
|
||||
#[cfg(feature = "debug")]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue