Update
This commit is contained in:
parent
17a6ba615c
commit
d12d43f404
@ -260,8 +260,6 @@ impl Audio {
|
|||||||
let mut rc = self.last_action_timestamp.borrow_mut();
|
let mut rc = self.last_action_timestamp.borrow_mut();
|
||||||
*rc = glib::get_monotonic_time();
|
*rc = glib::get_monotonic_time();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
debug!("Setting mute to {} on card {:?} and chan {:?} by user {:?}",
|
debug!("Setting mute to {} on card {:?} and chan {:?} by user {:?}",
|
||||||
mute,
|
mute,
|
||||||
self.acard
|
self.acard
|
||||||
@ -285,6 +283,12 @@ impl Audio {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
pub fn toggle_mute(&self, user: AudioUser) -> Result<()> {
|
||||||
|
let muted = self.get_mute()?;
|
||||||
|
return self.set_mute(!muted, user);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
pub fn connect_handler(&self, cb: Box<Fn(AudioSignal, AudioUser)>) {
|
pub fn connect_handler(&self, cb: Box<Fn(AudioSignal, AudioUser)>) {
|
||||||
self.handlers.add_handler(cb);
|
self.handlers.add_handler(cb);
|
||||||
}
|
}
|
||||||
|
@ -131,9 +131,7 @@ fn on_vol_scale_value_changed(appstate: &AppS) {
|
|||||||
|
|
||||||
fn on_mute_check_toggled(appstate: &AppS) {
|
fn on_mute_check_toggled(appstate: &AppS) {
|
||||||
let audio = &appstate.audio;
|
let audio = &appstate.audio;
|
||||||
|
try_w!(audio.toggle_mute(AudioUser::Popup))
|
||||||
let muted = try_w!(audio.get_mute());
|
|
||||||
let _ = try_w!(audio.set_mute(!muted, AudioUser::Popup));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -115,10 +115,8 @@ fn pixbuf_new_from_theme(icon_name: &str,
|
|||||||
|
|
||||||
|
|
||||||
fn update_tray_icon(audio_pix: &AudioPix, appstate: &AppS) {
|
fn update_tray_icon(audio_pix: &AudioPix, appstate: &AppS) {
|
||||||
debug!("Update tray icon");
|
|
||||||
let status_icon = &appstate.gui.status_icon;
|
let status_icon = &appstate.gui.status_icon;
|
||||||
let pixbuf = audio_pix.select_pix(appstate.audio.vol_level());
|
let pixbuf = audio_pix.select_pix(appstate.audio.vol_level());
|
||||||
debug!("VolLevel: {:?}", appstate.audio.vol_level());
|
|
||||||
status_icon.set_from_pixbuf(Some(pixbuf));
|
status_icon.set_from_pixbuf(Some(pixbuf));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,7 +132,6 @@ pub fn init_tray_icon(appstate: Rc<AppS>) {
|
|||||||
appstate.audio.connect_handler(Box::new(move |s, u| {
|
appstate.audio.connect_handler(Box::new(move |s, u| {
|
||||||
match (s, u) {
|
match (s, u) {
|
||||||
(AudioSignal::ValuesChanged, _) => {
|
(AudioSignal::ValuesChanged, _) => {
|
||||||
debug!("tray icon handler: {:?} {:?}", s, u);
|
|
||||||
update_tray_icon(&_audio_pix.borrow(), &apps);
|
update_tray_icon(&_audio_pix.borrow(), &apps);
|
||||||
},
|
},
|
||||||
_ => (),
|
_ => (),
|
||||||
@ -176,6 +173,15 @@ pub fn init_tray_icon(appstate: Rc<AppS>) {
|
|||||||
on_tray_icon_popup_menu(&apps)
|
on_tray_icon_popup_menu(&apps)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* tray_icon.connect_button_release_event */
|
||||||
|
{
|
||||||
|
let apps = appstate.clone();
|
||||||
|
let tray_icon = &appstate.clone().gui.status_icon;
|
||||||
|
tray_icon.connect_button_release_event(move |_, eb| {
|
||||||
|
on_tray_button_release_event(&apps, eb)
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -241,3 +247,20 @@ fn on_tray_icon_size_changed(appstate: &AppS,
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fn on_tray_button_release_event(appstate: &AppS,
|
||||||
|
event_button: &gdk::EventButton)
|
||||||
|
-> bool {
|
||||||
|
let button = event_button.get_button();
|
||||||
|
|
||||||
|
if button != 2 {
|
||||||
|
// not middle-click
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
let audio = &appstate.audio;
|
||||||
|
try_wr!(audio.toggle_mute(AudioUser::Popup), false);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user