From 24bbd7eae207e8a275ed4fb597c6f26e91e9a97c Mon Sep 17 00:00:00 2001 From: Sophie Herold Date: Mon, 1 May 2023 17:44:45 +0200 Subject: [PATCH] window: Show controls on mouse click --- src/widgets/image.rs | 1 + src/widgets/image_view.rs | 1 + src/window.rs | 15 +++++++++++++++ 3 files changed, 17 insertions(+) diff --git a/src/widgets/image.rs b/src/widgets/image.rs index a113351..c62bb4b 100644 --- a/src/widgets/image.rs +++ b/src/widgets/image.rs @@ -429,6 +429,7 @@ mod imp { if obj.is_hscrollable() || obj.is_vscrollable() { obj.cancel_deceleration(); + gesture.set_state(gtk::EventSequenceState::Claimed); obj.set_cursor(gdk::Cursor::from_name("grabbing", None).as_ref()); obj.imp().last_drag_value.set(Some((0., 0.))); } else { diff --git a/src/widgets/image_view.rs b/src/widgets/image_view.rs index fbb9739..e91d7c0 100644 --- a/src/widgets/image_view.rs +++ b/src/widgets/image_view.rs @@ -176,6 +176,7 @@ mod imp { gesture.set_state(gtk::EventSequenceState::Denied); None } else { + gesture.set_state(gtk::EventSequenceState::Claimed); obj.current_page().and_then(|p| p.content_provider()) } }), diff --git a/src/window.rs b/src/window.rs index 151f3dc..75ad104 100644 --- a/src/window.rs +++ b/src/window.rs @@ -256,6 +256,11 @@ mod imp { obj.on_images_available(); + let gesture_click = gtk::GestureClick::new(); + gesture_click + .connect_pressed(glib::clone!(@weak obj => move |_, _, _, _| obj.on_click())); + obj.add_controller(gesture_click); + let current_image_signals = self.image_view.current_image_signals(); // clone! is a macro from glib-rs that allows // you to easily handle references in callbacks @@ -831,6 +836,16 @@ impl LpWindow { } } + fn on_click(&self) { + self.show_controls(); + + if self.can_hide_controls() { + self.queue_hide_controls(); + } else { + self.dequeue_hide_controls(); + } + } + #[template_callback] fn on_motion_cb(&self) { let controller = &self.imp().motion_controller;