Fixed cases where the module would be hidden when it should be visible
parent
f7224d8459
commit
e73ea8d608
|
@ -30,6 +30,7 @@ class Privacy : public AModule {
|
||||||
PrivacyItem privacy_item_audio_input;
|
PrivacyItem privacy_item_audio_input;
|
||||||
PrivacyItem privacy_item_audio_output;
|
PrivacyItem privacy_item_audio_output;
|
||||||
|
|
||||||
|
std::mutex mutex_;
|
||||||
sigc::connection visibility_conn;
|
sigc::connection visibility_conn;
|
||||||
|
|
||||||
// Config
|
// Config
|
||||||
|
|
|
@ -67,6 +67,7 @@ Privacy::Privacy(const std::string& id, const Json::Value& config, const std::st
|
||||||
}
|
}
|
||||||
|
|
||||||
void Privacy::onPrivacyNodesChanged() {
|
void Privacy::onPrivacyNodesChanged() {
|
||||||
|
mutex_.lock();
|
||||||
nodes_audio_out.clear();
|
nodes_audio_out.clear();
|
||||||
nodes_audio_in.clear();
|
nodes_audio_in.clear();
|
||||||
nodes_screenshare.clear();
|
nodes_screenshare.clear();
|
||||||
|
@ -100,6 +101,7 @@ void Privacy::onPrivacyNodesChanged() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mutex_.unlock();
|
||||||
dp.emit();
|
dp.emit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,13 +123,17 @@ auto Privacy::update() -> void {
|
||||||
if (is_visible) {
|
if (is_visible) {
|
||||||
event_box_.set_visible(true);
|
event_box_.set_visible(true);
|
||||||
} else {
|
} else {
|
||||||
visibility_conn = Glib::signal_timeout().connect(sigc::track_obj(
|
visibility_conn = Glib::signal_timeout().connect(
|
||||||
[this] {
|
sigc::track_obj(
|
||||||
event_box_.set_visible(false);
|
[this] {
|
||||||
return false;
|
bool screenshare = !nodes_screenshare.empty();
|
||||||
},
|
bool audio_in = !nodes_audio_in.empty();
|
||||||
*this),
|
bool audio_out = !nodes_audio_out.empty();
|
||||||
transition_duration);
|
event_box_.set_visible(screenshare || audio_in || audio_out);
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
*this),
|
||||||
|
transition_duration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue