From 732a31170ea7816736b0934aedc36910d9ceeb7d Mon Sep 17 00:00:00 2001 From: Kamil Jarosz Date: Sun, 7 Jul 2024 03:13:07 +0200 Subject: [PATCH] desktop: Do not show context menu when right click event is consumed --- desktop/src/app.rs | 7 ++++--- desktop/src/player.rs | 6 ++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/desktop/src/app.rs b/desktop/src/app.rs index c9eabe78b..5718268f2 100644 --- a/desktop/src/app.rs +++ b/desktop/src/app.rs @@ -267,16 +267,17 @@ impl App { }, ElementState::Released => PlayerEvent::MouseUp { x, y, button }, }; - if state == ElementState::Released && button == RuffleMouseButton::Right + let handled = self.player.handle_event(event); + if !handled + && state == ElementState::Pressed + && button == RuffleMouseButton::Right { // Show context menu. - // TODO: Should be squelched if player consumes the right click event. if let Some(mut player) = self.player.get() { let context_menu = player.prepare_context_menu(); self.gui.borrow_mut().show_context_menu(context_menu); } } - self.player.handle_event(event); check_redraw = true; } WindowEvent::MouseWheel { delta, .. } => { diff --git a/desktop/src/player.rs b/desktop/src/player.rs index 5519c77fa..dc9756f50 100644 --- a/desktop/src/player.rs +++ b/desktop/src/player.rs @@ -435,12 +435,14 @@ impl PlayerController { } } - pub fn handle_event(&self, event: PlayerEvent) { + pub fn handle_event(&self, event: PlayerEvent) -> bool { if let Some(mut player) = self.get() { if player.is_playing() { - player.handle_event(event); + return player.handle_event(event); } } + + false } pub fn poll(&self) {