From b17ffc5db9533668386f009b53b61a8f2b9b5380 Mon Sep 17 00:00:00 2001 From: Elias Projahn Date: Tue, 19 Oct 2021 11:31:07 +0200 Subject: [PATCH] player screen: Fix event handler closure --- musicus/src/screens/player.rs | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/musicus/src/screens/player.rs b/musicus/src/screens/player.rs index d8b3a2e..962819f 100644 --- a/musicus/src/screens/player.rs +++ b/musicus/src/screens/player.rs @@ -175,25 +175,27 @@ impl Screen<(), ()> for PlayerScreen { this.handle.backend.pl().clear(); })); - event_controller.connect_event(clone!(@weak this => @default-panic, move |_, event| { - if let Some(event) = event.downcast_ref::() { - if event.button() == gdk::BUTTON_PRIMARY { - match event.event_type() { - gdk::EventType::ButtonPress => { - this.seeking.replace(true); + event_controller.connect_event( + clone!(@weak this => @default-return glib::signal::Inhibit(false), move |_, event| { + if let Some(event) = event.downcast_ref::() { + if event.button() == gdk::BUTTON_PRIMARY { + match event.event_type() { + gdk::EventType::ButtonPress => { + this.seeking.replace(true); + } + gdk::EventType::ButtonRelease => { + this.handle.backend.pl().seek(this.position.value() as u64); + this.seeking.replace(false); + } + _ => (), } - gdk::EventType::ButtonRelease => { - this.handle.backend.pl().seek(this.position.value() as u64); - this.seeking.replace(false); - } - _ => (), } + } - } - - glib::signal::Inhibit(false) - })); + glib::signal::Inhibit(false) + }), + ); position_scale.connect_value_changed(clone!(@weak this => move |_| { if this.seeking.get() {