diff --git a/bin/mpdevil b/bin/mpdevil index 47601a3..a886050 100755 --- a/bin/mpdevil +++ b/bin/mpdevil @@ -783,7 +783,7 @@ class Client(MPDClient): if "songid" in diff: self.emitter.emit("current_song_changed") if "volume" in diff: - self.emitter.emit("volume_changed", 0) + self.emitter.emit("volume_changed", -1) if "updating_db" in diff: self.emitter.emit("update") self._last_status=status @@ -3172,6 +3172,7 @@ class PlaybackOptions(Gtk.Box): self._consume_button=Gtk.ToggleButton(image=self._icons["edit-cut-symbolic"]) self._consume_button.set_tooltip_text(_("Consume mode")) self._volume_button=Gtk.VolumeButton() + self._volume_button.set_sensitive(False) # do not allow volume change by user when MPD has not yet reported volume self._volume_button.set_property("use-symbolic", True) self._volume_button.set_property("size", self._settings.get_gtk_icon_size("icon-size")) adj=self._volume_button.get_adjustment() @@ -3234,7 +3235,12 @@ class PlaybackOptions(Gtk.Box): def _volume_refresh(self, emitter, volume): self._volume_button.handler_block(self._volume_button_changed) - self._volume_button.set_value(volume/100) + if volume < 0: + self._volume_button.set_sensitive(False) + self._volume_button.set_value(0) + else: + self._volume_button.set_value(volume/100) + self._volume_button.set_sensitive(True) self._volume_button.handler_unblock(self._volume_button_changed) def _on_icon_size_changed(self, *args): @@ -3244,15 +3250,21 @@ class PlaybackOptions(Gtk.Box): self._volume_button.set_property("size", self._settings.get_gtk_icon_size("icon-size")) def _on_reconnected(self, *args): - self.set_sensitive(True) + self._repeat_button.set_sensitive(True) + self._random_button.set_sensitive(True) + self._single_button.set_sensitive(True) + self._consume_button.set_sensitive(True) def _on_disconnected(self, *args): - self.set_sensitive(False) + self._repeat_button.set_sensitive(False) + self._random_button.set_sensitive(False) + self._single_button.set_sensitive(False) + self._consume_button.set_sensitive(False) self._repeat_refresh(None, False) self._random_refresh(None, False) self._single_refresh(None, False) self._consume_refresh(None, False) - self._volume_refresh(None, 0) + self._volume_refresh(None, -1) ################# # other dialogs #