Pass app to PanelWindow::new()

This commit is contained in:
Ian Douglas Scott 2021-09-07 12:56:25 -07:00
parent 4e5479cdd8
commit 7430b965e1
2 changed files with 7 additions and 4 deletions

View file

@ -81,9 +81,9 @@ impl PanelApp {
}
fn add_window_for_monitor(&self, monitor: gdk::Monitor) {
self.add_window(&cascade! {
PanelWindow::new(monitor);
cascade! {
PanelWindow::new(self, monitor);
..show();
});
};
}
}

View file

@ -3,6 +3,7 @@ use glib::clone;
use gtk4::{gdk, glib, pango, prelude::*, subclass::prelude::*};
use std::cell::Cell;
use crate::application::PanelApp;
use crate::deref_cell::DerefCell;
use crate::status_area::StatusArea;
use crate::time_button::TimeButton;
@ -121,7 +122,7 @@ glib::wrapper! {
}
impl PanelWindow {
pub fn new(monitor: gdk::Monitor) -> Self {
pub fn new(app: &PanelApp, monitor: gdk::Monitor) -> Self {
let obj = glib::Object::new::<Self>(&[]).unwrap();
monitor.connect_invalidate(clone!(@weak obj => move |_| obj.close()));
@ -129,6 +130,8 @@ impl PanelWindow {
obj.set_size_request(monitor.geometry().width, 0);
obj.inner().monitor.set(monitor);
app.add_window(&obj);
obj
}