summaryrefslogtreecommitdiffstats
path: root/src/SinkWindow.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/SinkWindow.cc')
-rw-r--r--src/SinkWindow.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/SinkWindow.cc b/src/SinkWindow.cc
index e551f53..bcf1681 100644
--- a/src/SinkWindow.cc
+++ b/src/SinkWindow.cc
@@ -21,7 +21,8 @@ SinkWindow::SinkWindow(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glade:
volumeResetButton(NULL),
volumeMuteButton(NULL),
volumeMeterButton(NULL),
- volumeScale(NULL) {
+ volumeScale(NULL),
+ scaleEnabled(true) {
refGlade->get_widget("nameLabel", nameLabel);
refGlade->get_widget("descriptionLabel", descriptionLabel);
@@ -76,7 +77,9 @@ void SinkWindow::updateInfo(const SinkInfo &i) {
percent = pa_volume_to_user(i.volume) * 100;
db = pa_volume_to_dB(i.volume);
+ scaleEnabled = false;
volumeScale->set_value(percent);
+ scaleEnabled = true;
if (db != PA_DECIBEL_MININFTY)
snprintf(t, sizeof(t), "%0.0f%% (%0.2fdB)", percent, db);
else
@@ -107,7 +110,8 @@ void SinkWindow::onToOwnerModuleButton() {
}
void SinkWindow::onVolumeScaleValueChanged() {
- serverInfoManager->setSinkVolume(index, pa_volume_from_user(volumeScale->get_value()/100));
+ if (scaleEnabled)
+ serverInfoManager->setSinkVolume(index, pa_volume_from_user(volumeScale->get_value()/100));
}
void SinkWindow::onVolumeResetButton() {