1
0
Fork 0
forked from wry/wry

tree: allow showing floating windows above fullscreen

This commit is contained in:
Julian Orth 2025-04-22 17:46:25 +02:00
parent f3179b7794
commit 0c02cb5033
17 changed files with 118 additions and 6 deletions

View file

@ -56,6 +56,8 @@ pub enum SimpleCommand {
ToggleSplit,
Forward(bool),
EnableWindowManagement(bool),
SetFloatAboveFullscreen(bool),
ToggleFloatAboveFullscreen,
}
#[derive(Debug, Clone)]

View file

@ -113,6 +113,9 @@ impl ActionParser<'_> {
"consume" => Forward(false),
"enable-window-management" => EnableWindowManagement(true),
"disable-window-management" => EnableWindowManagement(false),
"enable-float-above-fullscreen" => SetFloatAboveFullscreen(true),
"disable-float-above-fullscreen" => SetFloatAboveFullscreen(false),
"toggle-float-above-fullscreen" => ToggleFloatAboveFullscreen,
_ => {
return Err(
ActionParserError::UnknownSimpleAction(string.to_string()).spanned(span)

View file

@ -24,11 +24,12 @@ use {
keyboard::{Keymap, ModifiedKeySym},
logging::set_log_level,
on_devices_enumerated, on_idle, quit, reload, set_color_management_enabled,
set_default_workspace_capture, set_explicit_sync_enabled, set_idle, set_idle_grace_period,
set_ui_drag_enabled, set_ui_drag_threshold,
set_default_workspace_capture, set_explicit_sync_enabled, set_float_above_fullscreen,
set_idle, set_idle_grace_period, set_ui_drag_enabled, set_ui_drag_threshold,
status::{set_i3bar_separator, set_status, set_status_command, unset_status_command},
switch_to_vt,
theme::{reset_colors, reset_font, reset_sizes, set_font},
toggle_float_above_fullscreen,
video::{
ColorSpace, Connector, DrmDevice, TransferFunction, connectors, drm_devices,
on_connector_connected, on_connector_disconnected, on_graphics_initialized,
@ -96,6 +97,12 @@ impl Action {
SimpleCommand::EnableWindowManagement(bool) => {
B::new(move || s.set_window_management_enabled(bool))
}
SimpleCommand::SetFloatAboveFullscreen(bool) => {
B::new(move || set_float_above_fullscreen(bool))
}
SimpleCommand::ToggleFloatAboveFullscreen => {
B::new(|| toggle_float_above_fullscreen())
}
},
Action::Multi { actions } => {
let actions: Vec<_> = actions.into_iter().map(|a| a.into_fn(state)).collect();