diff --git a/src/tasks/connector.rs b/src/tasks/connector.rs index 6f8c70a1..b763533b 100644 --- a/src/tasks/connector.rs +++ b/src/tasks/connector.rs @@ -8,14 +8,10 @@ use { }, output_schedule::OutputSchedule, state::{ConnectorData, OutputData, State}, - tree::{OutputNode, OutputRenderData, WsMoveConfig, move_ws_to_output}, + tree::{OutputNode, WsMoveConfig, move_ws_to_output}, utils::{asyncevent::AsyncEvent, clonecell::CloneCell, hash_map_ext::HashMapExt}, }, - std::{ - cell::{Cell, RefCell}, - collections::VecDeque, - rc::Rc, - }, + std::{cell::Cell, collections::VecDeque, rc::Rc}, }; pub fn handle(state: &Rc, connector: &Rc) { @@ -166,15 +162,7 @@ impl ConnectorHandler { workspace_rect: Default::default(), non_exclusive_rect: Default::default(), non_exclusive_rect_rel: Default::default(), - render_data: RefCell::new(OutputRenderData { - active_workspace: None, - underline: Default::default(), - inactive_workspaces: Default::default(), - attention_requested_workspaces: Default::default(), - captured_inactive_workspaces: Default::default(), - titles: Default::default(), - status: None, - }), + render_data: Default::default(), state: self.state.clone(), is_dummy: false, status: self.state.status.clone(), diff --git a/src/tree/output.rs b/src/tree/output.rs index 9dbad4c9..44fceb82 100644 --- a/src/tree/output.rs +++ b/src/tree/output.rs @@ -594,15 +594,16 @@ impl OutputNode { status.tex_x = pos; } } + let old_full_area = rd.full_area; + rd.full_area = Rect::new_sized( + non_exclusive_rect.x1(), + non_exclusive_rect.y1(), + non_exclusive_rect.width(), + th + 1, + ) + .unwrap(); if self.title_visible.get() { - let title_rect = Rect::new_sized( - non_exclusive_rect.x1(), - non_exclusive_rect.y1(), - non_exclusive_rect.width(), - th, - ) - .unwrap(); - self.state.damage(title_rect); + self.state.damage(rd.full_area.union(old_full_area)); } } @@ -1246,6 +1247,7 @@ pub struct OutputWorkspaceRenderData { #[derive(Default)] pub struct OutputRenderData { + pub full_area: Rect, pub active_workspace: Option, pub underline: Rect, pub inactive_workspaces: Vec,