fullscreen: Use CosmicWindow for decorations

This commit is contained in:
Victoria Brekenfeld 2023-09-18 18:29:13 +02:00
parent 098dd1e37d
commit 4e1c16c384
8 changed files with 188 additions and 86 deletions

View file

@ -224,13 +224,13 @@ impl Common {
continue; // Focus is valid,
}
}
KeyboardFocusTarget::Fullscreen(surface) => {
KeyboardFocusTarget::Fullscreen(window) => {
let workspace = state.common.shell.active_space(&output);
let focus_stack = workspace.focus_stack.get(&seat);
if focus_stack
.last()
.map(|m| m.has_active_window(&surface))
.map(|m| m.has_active_window(&window.surface()))
.unwrap_or(false)
&& workspace.get_fullscreen(&output).is_some()
{

View file

@ -1,7 +1,10 @@
use std::sync::Weak;
use crate::{
shell::{element::CosmicMapped, layout::tiling::ResizeForkTarget, CosmicSurface},
shell::{
element::{CosmicMapped, CosmicWindow},
layout::tiling::ResizeForkTarget,
},
utils::prelude::*,
wayland::handlers::xdg_shell::popup::get_popup_toplevel,
};
@ -29,7 +32,7 @@ use smithay::{
#[derive(Debug, Clone, PartialEq)]
pub enum PointerFocusTarget {
Element(CosmicMapped),
Fullscreen(CosmicSurface),
Fullscreen(CosmicWindow),
LayerSurface(LayerSurface),
Popup(PopupKind),
OverrideRedirect(X11Surface),
@ -39,7 +42,7 @@ pub enum PointerFocusTarget {
#[derive(Debug, Clone, PartialEq)]
pub enum KeyboardFocusTarget {
Element(CosmicMapped),
Fullscreen(CosmicSurface),
Fullscreen(CosmicWindow),
Group(WindowGroup),
LayerSurface(LayerSurface),
Popup(PopupKind),
@ -551,8 +554,8 @@ impl From<CosmicMapped> for PointerFocusTarget {
}
}
impl From<CosmicSurface> for PointerFocusTarget {
fn from(s: CosmicSurface) -> Self {
impl From<CosmicWindow> for PointerFocusTarget {
fn from(s: CosmicWindow) -> Self {
PointerFocusTarget::Fullscreen(s)
}
}
@ -587,8 +590,8 @@ impl From<CosmicMapped> for KeyboardFocusTarget {
}
}
impl From<CosmicSurface> for KeyboardFocusTarget {
fn from(s: CosmicSurface) -> Self {
impl From<CosmicWindow> for KeyboardFocusTarget {
fn from(s: CosmicWindow) -> Self {
KeyboardFocusTarget::Fullscreen(s)
}
}