tree: damage stacked nodes when visibility changes
This commit is contained in:
parent
d1893a68eb
commit
fcaed80b84
3 changed files with 11 additions and 1 deletions
|
|
@ -470,6 +470,9 @@ impl StackedNode for Xwindow {
|
||||||
stacked_node_impl!();
|
stacked_node_impl!();
|
||||||
|
|
||||||
fn stacked_set_visible(&self, visible: bool) {
|
fn stacked_set_visible(&self, visible: bool) {
|
||||||
|
let extents = self.x.surface.extents.get();
|
||||||
|
let (x, y) = self.x.surface.buffer_abs_pos.get().position();
|
||||||
|
self.data.state.damage(extents.move_(x, y));
|
||||||
self.tl_set_visible(visible);
|
self.tl_set_visible(visible);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -241,6 +241,11 @@ impl XdgPopupRequestHandler for XdgPopup {
|
||||||
|
|
||||||
impl XdgPopup {
|
impl XdgPopup {
|
||||||
pub fn set_visible(&self, visible: bool) {
|
pub fn set_visible(&self, visible: bool) {
|
||||||
|
let surface = &self.xdg.surface;
|
||||||
|
let extents = surface.extents.get();
|
||||||
|
let (x, y) = surface.buffer_abs_pos.get().position();
|
||||||
|
surface.client.state.damage(extents.move_(x, y));
|
||||||
|
|
||||||
// log::info!("set visible = {}", visible);
|
// log::info!("set visible = {}", visible);
|
||||||
self.set_visible_prepared.set(false);
|
self.set_visible_prepared.set(false);
|
||||||
self.xdg.set_visible(visible);
|
self.xdg.set_visible(visible);
|
||||||
|
|
|
||||||
|
|
@ -785,7 +785,9 @@ impl StackedNode for FloatNode {
|
||||||
stacked_node_impl!();
|
stacked_node_impl!();
|
||||||
|
|
||||||
fn stacked_set_visible(&self, visible: bool) {
|
fn stacked_set_visible(&self, visible: bool) {
|
||||||
self.visible.set(visible);
|
if self.visible.replace(visible) != visible {
|
||||||
|
self.state.damage(self.position.get());
|
||||||
|
}
|
||||||
if let Some(child) = self.child.get() {
|
if let Some(child) = self.child.get() {
|
||||||
child.tl_set_visible(visible);
|
child.tl_set_visible(visible);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue