From 6aeb76407a30309326a04b29d19e5390a4b96248 Mon Sep 17 00:00:00 2001 From: MaxVerevkin Date: Sat, 26 Aug 2023 16:56:58 +0300 Subject: rework wm_info_provider stuff --- src/shared_state.rs | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) (limited to 'src/shared_state.rs') diff --git a/src/shared_state.rs b/src/shared_state.rs index 2e87749..936b29a 100644 --- a/src/shared_state.rs +++ b/src/shared_state.rs @@ -1,6 +1,8 @@ use crate::{ - blocks_cache::BlocksCache, config::Config, status_cmd::StatusCmd, - wm_info_provider::WmInfoProvider, + blocks_cache::BlocksCache, + config::Config, + status_cmd::StatusCmd, + wm_info_provider::{self, WmInfoProvider}, }; use wayrs_utils::shm_alloc::ShmAlloc; @@ -10,5 +12,16 @@ pub struct SharedState { pub config: Config, pub status_cmd: Option, pub blocks_cache: BlocksCache, - pub wm_info_provider: WmInfoProvider, + pub wm_info_provider: Option>, +} + +impl SharedState { + pub fn get_river(&mut self) -> Option<&mut wm_info_provider::RiverInfoProvider> { + self.wm_info_provider.as_mut()?.as_any().downcast_mut() + } + + #[cfg(feature = "hyprland")] + pub fn get_ewu(&mut self) -> Option<&mut wm_info_provider::ExtWorkspaceUnstable> { + self.wm_info_provider.as_mut()?.as_any().downcast_mut() + } } -- cgit v1.3.1