ShowWidget: Fix undo notif.
This commit is contained in:
parent
f6890c709f
commit
7b064e63b9
@ -193,7 +193,9 @@ fn on_played_button_clicked(
|
|||||||
notif.set_reveal_child(true);
|
notif.set_reveal_child(true);
|
||||||
|
|
||||||
// Set up the callback
|
// Set up the callback
|
||||||
let id = timeout_add_seconds(10, move || {
|
let id = timeout_add_seconds(
|
||||||
|
10,
|
||||||
|
clone!(sender => move || {
|
||||||
if let Err(err) = wrap(&pd, sender.clone()) {
|
if let Err(err) = wrap(&pd, sender.clone()) {
|
||||||
error!(
|
error!(
|
||||||
"Something went horribly wrong with the notif callback: {}",
|
"Something went horribly wrong with the notif callback: {}",
|
||||||
@ -201,16 +203,20 @@ fn on_played_button_clicked(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
glib::Continue(false)
|
glib::Continue(false)
|
||||||
});
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
let id = Rc::new(RefCell::new(Some(id)));
|
let id = Rc::new(RefCell::new(Some(id)));
|
||||||
|
|
||||||
// Cancel the callback
|
// Cancel the callback
|
||||||
undo.connect_clicked(clone!(id, notif => move |_| {
|
undo.connect_clicked(clone!(id, notif, sender => move |_| {
|
||||||
let foo = id.borrow_mut().take();
|
let foo = id.borrow_mut().take();
|
||||||
if let Some(id) = foo {
|
if let Some(id) = foo {
|
||||||
glib::source::source_remove(id);
|
glib::source::source_remove(id);
|
||||||
notif.set_reveal_child(false);
|
notif.set_reveal_child(false);
|
||||||
|
if let Err(err) = sender.send(Action::RefreshWidgetIfVis) {
|
||||||
|
error!("Something went horribly wrong with the Action channel: {}", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
@ -227,7 +233,11 @@ fn wrap(pd: &Podcast, sender: Sender<Action>) -> Result<(), Error> {
|
|||||||
// But now I can't think of a better way to do it than hardcoding the title
|
// But now I can't think of a better way to do it than hardcoding the title
|
||||||
// position relative to the EpisodeWidget container gtk::Box.
|
// position relative to the EpisodeWidget container gtk::Box.
|
||||||
fn dim_titles(episodes: >k::Frame) -> Option<()> {
|
fn dim_titles(episodes: >k::Frame) -> Option<()> {
|
||||||
let listbox = episodes.get_focus_child()?.downcast::<gtk::ListBox>().ok()?;
|
let listbox = episodes
|
||||||
|
.get_children()
|
||||||
|
.remove(0)
|
||||||
|
.downcast::<gtk::ListBox>()
|
||||||
|
.ok()?;
|
||||||
let children = listbox.get_children();
|
let children = listbox.get_children();
|
||||||
|
|
||||||
for row in children {
|
for row in children {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user