tree: add WorkspaceDisplayOrder
This commit is contained in:
parent
8b0bb61ee0
commit
1677d481f9
6 changed files with 40 additions and 15 deletions
|
|
@ -57,9 +57,10 @@ use {
|
|||
tasks::{self, handle_const_40hz_latch, idle},
|
||||
tracy::enable_profiler,
|
||||
tree::{
|
||||
DisplayNode, NodeIds, OutputNode, TearingMode, Transform, VrrMode, WorkspaceNode,
|
||||
container_layout, container_render_positions, container_render_titles, float_layout,
|
||||
float_titles, output_render_data, placeholder_render_textures,
|
||||
DisplayNode, NodeIds, OutputNode, TearingMode, Transform, VrrMode,
|
||||
WorkspaceDisplayOrder, WorkspaceNode, container_layout, container_render_positions,
|
||||
container_render_titles, float_layout, float_titles, output_render_data,
|
||||
placeholder_render_textures,
|
||||
},
|
||||
user_session::import_environment,
|
||||
utils::{
|
||||
|
|
@ -82,7 +83,7 @@ use {
|
|||
},
|
||||
ahash::AHashSet,
|
||||
forker::ForkerProxy,
|
||||
jay_config::{_private::DEFAULT_SEAT_NAME, workspace::WorkspaceDisplayOrder},
|
||||
jay_config::_private::DEFAULT_SEAT_NAME,
|
||||
std::{
|
||||
cell::{Cell, RefCell},
|
||||
env,
|
||||
|
|
|
|||
|
|
@ -1465,7 +1465,7 @@ impl ConfigProxyHandler {
|
|||
}
|
||||
|
||||
fn handle_set_workspace_display_order(&self, order: WorkspaceDisplayOrder) {
|
||||
self.state.workspace_display_order.set(order);
|
||||
self.state.workspace_display_order.set(order.into());
|
||||
for output in self.state.root.outputs.lock().values() {
|
||||
output.handle_workspace_display_order_update();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -97,7 +97,8 @@ use {
|
|||
ContainerNode, ContainerSplit, Direction, DisplayNode, FindTreeUsecase, FloatNode,
|
||||
FoundNode, LatchListener, Node, NodeIds, NodeVisitorBase, OutputNode, PlaceholderNode,
|
||||
TearingMode, TileState, ToplevelData, ToplevelNode, ToplevelNodeBase, Transform,
|
||||
VrrMode, WorkspaceNode, WsMoveConfig, generic_node_visitor, move_ws_to_output,
|
||||
VrrMode, WorkspaceDisplayOrder, WorkspaceNode, WsMoveConfig, generic_node_visitor,
|
||||
move_ws_to_output,
|
||||
},
|
||||
udmabuf::UdmabufHolder,
|
||||
utils::{
|
||||
|
|
@ -135,7 +136,7 @@ use {
|
|||
},
|
||||
ahash::AHashMap,
|
||||
bstr::ByteSlice,
|
||||
jay_config::{PciId, workspace::WorkspaceDisplayOrder},
|
||||
jay_config::PciId,
|
||||
std::{
|
||||
cell::{Cell, RefCell},
|
||||
fmt::{Debug, Formatter},
|
||||
|
|
|
|||
26
src/tree.rs
26
src/tree.rs
|
|
@ -30,6 +30,7 @@ use {
|
|||
jay_config::{
|
||||
Direction as JayDirection, video::Transform as ConfigTransform,
|
||||
window::TileState as ConfigTileState,
|
||||
workspace::WorkspaceDisplayOrder as ConfigWorkspaceDisplayOrder,
|
||||
},
|
||||
linearize::{Linearize, LinearizeExt},
|
||||
std::{
|
||||
|
|
@ -53,6 +54,31 @@ mod toplevel;
|
|||
mod walker;
|
||||
mod workspace;
|
||||
|
||||
#[derive(Copy, Clone, Debug, Hash, Eq, PartialEq, Default, Linearize)]
|
||||
pub enum WorkspaceDisplayOrder {
|
||||
#[default]
|
||||
Manual,
|
||||
Sorted,
|
||||
}
|
||||
|
||||
impl From<ConfigWorkspaceDisplayOrder> for WorkspaceDisplayOrder {
|
||||
fn from(value: ConfigWorkspaceDisplayOrder) -> Self {
|
||||
match value {
|
||||
ConfigWorkspaceDisplayOrder::Manual => WorkspaceDisplayOrder::Manual,
|
||||
ConfigWorkspaceDisplayOrder::Sorted => WorkspaceDisplayOrder::Sorted,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl Into<ConfigWorkspaceDisplayOrder> for WorkspaceDisplayOrder {
|
||||
fn into(self) -> ConfigWorkspaceDisplayOrder {
|
||||
match self {
|
||||
WorkspaceDisplayOrder::Manual => ConfigWorkspaceDisplayOrder::Manual,
|
||||
WorkspaceDisplayOrder::Sorted => ConfigWorkspaceDisplayOrder::Sorted,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Copy, Clone, Debug, Hash, Eq, PartialEq, Default, Linearize)]
|
||||
pub enum Transform {
|
||||
#[default]
|
||||
|
|
|
|||
|
|
@ -47,7 +47,8 @@ use {
|
|||
tree::{
|
||||
Direction, FindTreeResult, FindTreeUsecase, FoundNode, Node, NodeId, NodeLayerLink,
|
||||
NodeLocation, PinnedNode, StackedNode, TddType, TileDragDestination, Transform,
|
||||
WorkspaceDragDestination, WorkspaceNode, WorkspaceNodeId, walker::NodeVisitor,
|
||||
WorkspaceDisplayOrder, WorkspaceDragDestination, WorkspaceNode, WorkspaceNodeId,
|
||||
walker::NodeVisitor,
|
||||
},
|
||||
utils::{
|
||||
asyncevent::AsyncEvent,
|
||||
|
|
@ -66,10 +67,7 @@ use {
|
|||
},
|
||||
},
|
||||
ahash::AHashMap,
|
||||
jay_config::{
|
||||
video::{TearingMode as ConfigTearingMode, VrrMode as ConfigVrrMode},
|
||||
workspace::WorkspaceDisplayOrder,
|
||||
},
|
||||
jay_config::video::{TearingMode as ConfigTearingMode, VrrMode as ConfigVrrMode},
|
||||
smallvec::SmallVec,
|
||||
std::{
|
||||
cell::{Cell, RefCell},
|
||||
|
|
|
|||
|
|
@ -22,8 +22,8 @@ use {
|
|||
tree::{
|
||||
ContainingNode, Direction, FindTreeResult, FindTreeUsecase, FloatNode, FoundNode, Node,
|
||||
NodeId, NodeLayerLink, NodeLocation, NodeVisitorBase, OutputNode, OutputNodeId,
|
||||
PlaceholderNode, StackedNode, ToplevelNode, container::ContainerNode,
|
||||
walker::NodeVisitor,
|
||||
PlaceholderNode, StackedNode, ToplevelNode, WorkspaceDisplayOrder,
|
||||
container::ContainerNode, walker::NodeVisitor,
|
||||
},
|
||||
utils::{
|
||||
clonecell::CloneCell,
|
||||
|
|
@ -35,7 +35,6 @@ use {
|
|||
},
|
||||
wire::JayWorkspaceId,
|
||||
},
|
||||
jay_config::workspace::WorkspaceDisplayOrder,
|
||||
std::{
|
||||
cell::{Cell, RefCell},
|
||||
fmt::Debug,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue