diff --git a/src/devicewidget.cc b/src/devicewidget.cc index b7b3d74..e419849 100644 --- a/src/devicewidget.cc +++ b/src/devicewidget.cc @@ -95,9 +95,11 @@ void DeviceWidget::onMuteToggleButton() { } void DeviceWidget::onDefaultToggleButton() { - /* Prevent the button being untoggled */ - if (defaultToggleButton->get_active()) - defaultToggleButton->set_sensitive(false); +} + +void DeviceWidget::setDefault(bool isDefault) { + defaultToggleButton->set_active(isDefault); + /*defaultToggleButton->set_sensitive(!isDefault);*/ } bool DeviceWidget::timeoutEvent() { diff --git a/src/devicewidget.h b/src/devicewidget.h index 90f437b..d092a49 100644 --- a/src/devicewidget.h +++ b/src/devicewidget.h @@ -44,6 +44,7 @@ public: virtual void onMuteToggleButton(); virtual void onDefaultToggleButton(); + virtual void setDefault(bool isDefault); sigc::connection timeoutConnection; diff --git a/src/mainwindow.cc b/src/mainwindow.cc index 5e6b464..5e86a41 100644 --- a/src/mainwindow.cc +++ b/src/mainwindow.cc @@ -214,8 +214,7 @@ void MainWindow::updateSink(const pa_sink_info &info) { w->setVolume(info.volume); w->muteToggleButton->set_active(info.mute); - w->defaultToggleButton->set_active(w->name == defaultSinkName); - w->defaultToggleButton->set_sensitive(w->name != defaultSinkName); + w->setDefault(w->name == defaultSinkName); w->updating = false; @@ -363,8 +362,7 @@ void MainWindow::updateSource(const pa_source_info &info) { w->setVolume(info.volume); w->muteToggleButton->set_active(info.mute); - w->defaultToggleButton->set_active(w->name == defaultSourceName); - w->defaultToggleButton->set_sensitive(w->name != defaultSourceName); + w->setDefault(w->name == defaultSourceName); w->updating = false; @@ -533,8 +531,7 @@ void MainWindow::updateServer(const pa_server_info &info) { continue; w->updating = true; - w->defaultToggleButton->set_active(w->name == defaultSinkName); - w->defaultToggleButton->set_sensitive(w->name != defaultSinkName); + w->setDefault(w->name == defaultSinkName); w->updating = false; } @@ -546,8 +543,7 @@ void MainWindow::updateServer(const pa_server_info &info) { continue; w->updating = true; - w->defaultToggleButton->set_active(w->name == defaultSourceName); - w->defaultToggleButton->set_sensitive(w->name != defaultSourceName); + w->setDefault(w->name == defaultSourceName); w->updating = false; } } diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc index e0fcdde..56159e8 100644 --- a/src/sinkwidget.cc +++ b/src/sinkwidget.cc @@ -66,8 +66,6 @@ void SinkWidget::onMuteToggleButton() { void SinkWidget::onDefaultToggleButton() { pa_operation* o; - DeviceWidget::onDefaultToggleButton(); - if (updating) return; diff --git a/src/sourcewidget.cc b/src/sourcewidget.cc index cef0a3e..94e78b1 100644 --- a/src/sourcewidget.cc +++ b/src/sourcewidget.cc @@ -66,8 +66,6 @@ void SourceWidget::onMuteToggleButton() { void SourceWidget::onDefaultToggleButton() { pa_operation* o; - DeviceWidget::onDefaultToggleButton(); - if (updating) return;