Improve background layer destructor and decrease log level of its events
This commit is contained in:
parent
bf8b8df4e1
commit
377e742ce0
1 changed files with 16 additions and 3 deletions
|
@ -73,6 +73,17 @@ pub struct BackgroundLayer {
|
||||||
dmabuf_feedback: Option<ZwpLinuxDmabufFeedbackV1>,
|
dmabuf_feedback: Option<ZwpLinuxDmabufFeedbackV1>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Drop for BackgroundLayer {
|
||||||
|
fn drop(&mut self) {
|
||||||
|
if let Some(dmabuf_feedback) = &self.dmabuf_feedback {
|
||||||
|
dmabuf_feedback.destroy();
|
||||||
|
}
|
||||||
|
if let Some(viewport) = &self.viewport {
|
||||||
|
viewport.destroy();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl BackgroundLayer {
|
impl BackgroundLayer {
|
||||||
pub fn draw_workspace_bg(&mut self, workspace_name: &str) {
|
pub fn draw_workspace_bg(&mut self, workspace_name: &str) {
|
||||||
if !self.configured {
|
if !self.configured {
|
||||||
|
@ -151,7 +162,7 @@ impl Drop for Wallpaper {
|
||||||
fn drop(&mut self) {
|
fn drop(&mut self) {
|
||||||
if let Some(wl_buffer) = &self.wl_buffer {
|
if let Some(wl_buffer) = &self.wl_buffer {
|
||||||
if self.active_count != 0 {
|
if self.active_count != 0 {
|
||||||
warn!("Destroying a {} times active wl_buffer of \
|
debug!("Destroying a {} times active wl_buffer of \
|
||||||
wallpaper {:?}", self.active_count, self.canon_path);
|
wallpaper {:?}", self.active_count, self.canon_path);
|
||||||
}
|
}
|
||||||
wl_buffer.destroy();
|
wl_buffer.destroy();
|
||||||
|
@ -262,7 +273,7 @@ impl DmabufHandler for State {
|
||||||
bg_layer.dmabuf_feedback.as_ref() == Some(proxy)
|
bg_layer.dmabuf_feedback.as_ref() == Some(proxy)
|
||||||
)
|
)
|
||||||
else {
|
else {
|
||||||
error!("Received unexpected Linux DMA-BUF feedback");
|
debug!("Received unexpected Linux DMA-BUF feedback");
|
||||||
return
|
return
|
||||||
};
|
};
|
||||||
if let Err(e) = handle_dmabuf_feedback(
|
if let Err(e) = handle_dmabuf_feedback(
|
||||||
|
@ -914,7 +925,9 @@ fn fallback_shm_load_wallpapers(
|
||||||
bg_layer_index: usize,
|
bg_layer_index: usize,
|
||||||
) {
|
) {
|
||||||
let bg_layer = &mut state.background_layers[bg_layer_index];
|
let bg_layer = &mut state.background_layers[bg_layer_index];
|
||||||
bg_layer.dmabuf_feedback = None;
|
if let Some(dmabuf_feedback) = bg_layer.dmabuf_feedback.take() {
|
||||||
|
dmabuf_feedback.destroy();
|
||||||
|
}
|
||||||
bg_layer.workspace_backgrounds.clear();
|
bg_layer.workspace_backgrounds.clear();
|
||||||
load_wallpapers(state, qh, bg_layer_index, None);
|
load_wallpapers(state, qh, bg_layer_index, None);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue