1
0
Fork 0
forked from wry/wry

render: apply correct damage after bar-size changes

This commit is contained in:
Julian Orth 2025-02-24 11:24:33 +01:00
parent 31747cef4a
commit 68f0966b16
2 changed files with 13 additions and 23 deletions

View file

@ -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<State>, connector: &Rc<dyn Connector>) {
@ -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(),

View file

@ -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<OutputWorkspaceRenderData>,
pub underline: Rect,
pub inactive_workspaces: Vec<Rect>,