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) { fn add_window_for_monitor(&self, monitor: gdk::Monitor) {
self.add_window(&cascade! { cascade! {
PanelWindow::new(monitor); PanelWindow::new(self, monitor);
..show(); ..show();
}); };
} }
} }

View file

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