Fixes for rendering windows in Global workspace mode
* Render window and active indicator at correct position relative to where the output is within the space. * Show active indicator around whole window, not only part of window on focused output.
This commit is contained in:
parent
8a188cb39e
commit
3804c67557
3 changed files with 11 additions and 4 deletions
|
|
@ -361,12 +361,14 @@ impl FloatingLayout {
|
|||
puffin::profile_function!();
|
||||
|
||||
let output_scale = output.current_scale().fractional_scale();
|
||||
let output_loc = self.space.output_geometry(output).unwrap().loc;
|
||||
|
||||
self.space
|
||||
.elements_for_output(output)
|
||||
.rev()
|
||||
.flat_map(|elem| {
|
||||
let render_location =
|
||||
self.space.element_location(elem).unwrap() - elem.geometry().loc;
|
||||
self.space.element_location(elem).unwrap() - output_loc - elem.geometry().loc;
|
||||
let mut elements = elem.render_elements(
|
||||
renderer,
|
||||
render_location.to_physical_precise_round(output_scale),
|
||||
|
|
@ -377,7 +379,7 @@ impl FloatingLayout {
|
|||
let element = IndicatorShader::element(
|
||||
renderer,
|
||||
Rectangle::from_loc_and_size(
|
||||
self.space.element_location(elem).unwrap(),
|
||||
self.space.element_location(elem).unwrap() - output_loc,
|
||||
elem.geometry().size,
|
||||
),
|
||||
indicator_thickness,
|
||||
|
|
|
|||
|
|
@ -406,6 +406,10 @@ impl Workspace {
|
|||
.chain(self.tiling_layer.mapped().map(|(_, w, _)| w))
|
||||
}
|
||||
|
||||
pub fn outputs(&self) -> impl Iterator<Item = &Output> {
|
||||
self.floating_layer.space.outputs()
|
||||
}
|
||||
|
||||
pub fn windows(&self) -> impl Iterator<Item = CosmicSurface> + '_ {
|
||||
self.floating_layer
|
||||
.windows()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue