blob: 7eda920eaa2044aca35fb42333f3eb6ec3687939 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
--- a/src/overview.cpp
+++ b/src/overview.cpp
@@ -1471,15 +1471,19 @@
public:
void init() override {
- wf::get_core().connect(&on_output_added); wf::get_core().connect(&on_output_removed);
+ wf::get_core().output_layout->connect(&on_output_added);
+ wf::get_core().output_layout->connect(&on_output_removed);
wf::get_core().connect(&on_motion); wf::get_core().connect(&on_button);
for (auto &o : wf::get_core().output_layout->get_outputs()) add_output(o);
}
void fini() override {
+ on_output_added.disconnect(); on_output_removed.disconnect();
+ on_motion.disconnect(); on_button.disconnect();
for (auto &[o, i] : outputs) { o->rem_binding(&i->toggle_cb); i->fini(); }
outputs.clear();
}
void add_output(wf::output_t *out) {
+ if (outputs.count(out)) return;
auto i = std::make_unique<overview_output_t>();
i->show_panel = opt_show_panel;
i->panel_height = opt_panel_height; i->panel_color = (std::string)opt_panel_color;
|