Release v0.2.11

This commit is contained in:
burnintuna 2026-07-29 02:22:16 +09:00
parent f7c67c1a79
commit 7d6202e0a2
5 changed files with 55 additions and 71 deletions

View file

@ -640,7 +640,7 @@ struct ViewerController {
key_controller: RefCell<Option<gtk::EventControllerKey>>,
motion_controller: RefCell<Option<gtk::EventControllerMotion>>,
fullscreen_key_controller: RefCell<Option<gtk::EventControllerKey>>,
fullscreen_click_controller: RefCell<Option<gtk::GestureClick>>,
fullscreen_click_controller: RefCell<Option<gtk::EventControllerLegacy>>,
fullscreen_ui_hide_timer: RefCell<Option<glib::SourceId>>,
fullscreen_ui_visible: Cell<bool>,
fullscreen_notify_handler: RefCell<Option<glib::SignalHandlerId>>,
@ -786,29 +786,24 @@ impl ViewerController {
controller.seek_page(index);
}
});
let seek_click = gtk::GestureClick::builder()
.button(gdk::BUTTON_PRIMARY)
.propagation_phase(gtk::PropagationPhase::Capture)
.build();
let seek_events = gtk::EventControllerLegacy::new();
seek_events.set_propagation_phase(gtk::PropagationPhase::Capture);
let controller = Rc::downgrade(self);
seek_click.connect_pressed(move |_, _, _, _| {
if let Some(controller) = controller.upgrade() {
controller.begin_seek_interaction();
seek_events.connect_event(move |_, event| {
if event
.downcast_ref::<gdk::ButtonEvent>()
.is_some_and(|event| event.button() == gdk::BUTTON_PRIMARY)
&& let Some(controller) = controller.upgrade()
{
match event.event_type() {
gdk::EventType::ButtonPress => controller.begin_seek_interaction(),
gdk::EventType::ButtonRelease => controller.end_seek_interaction(),
_ => {}
}
}
glib::Propagation::Proceed
});
let controller = Rc::downgrade(self);
seek_click.connect_released(move |_, _, _, _| {
if let Some(controller) = controller.upgrade() {
controller.end_seek_interaction();
}
});
let controller = Rc::downgrade(self);
seek_click.connect_cancel(move |_, _| {
if let Some(controller) = controller.upgrade() {
controller.end_seek_interaction();
}
});
self.page_seek.add_controller(seek_click);
self.page_seek.add_controller(seek_events);
let adjustment = self.continuous_scrolled.vadjustment();
let controller = Rc::downgrade(self);
@ -895,15 +890,17 @@ impl ViewerController {
});
self.stack.add_controller(scroll_controller);
let fullscreen_click = gtk::GestureClick::builder()
.button(0)
.propagation_phase(gtk::PropagationPhase::Capture)
.build();
let fullscreen_click = gtk::EventControllerLegacy::new();
fullscreen_click.set_propagation_phase(gtk::PropagationPhase::Capture);
let controller = Rc::downgrade(self);
fullscreen_click.connect_pressed(move |_, _, _, _| {
if let Some(controller) = controller.upgrade() {
fullscreen_click.connect_event(move |_, event| {
if event.downcast_ref::<gdk::ButtonEvent>().is_some()
&& event.event_type() == gdk::EventType::ButtonPress
&& let Some(controller) = controller.upgrade()
{
controller.controls_clicked();
}
glib::Propagation::Proceed
});
self.window.add_controller(fullscreen_click.clone());
self.fullscreen_click_controller
@ -2440,7 +2437,7 @@ struct MediaViewerController {
key_controller: RefCell<Option<gtk::EventControllerKey>>,
motion_controller: RefCell<Option<gtk::EventControllerMotion>>,
fullscreen_key_controller: RefCell<Option<gtk::EventControllerKey>>,
fullscreen_click_controller: RefCell<Option<gtk::GestureClick>>,
fullscreen_click_controller: RefCell<Option<gtk::EventControllerLegacy>>,
fullscreen_ui_hide_timer: RefCell<Option<glib::SourceId>>,
fullscreen_ui_visible: Cell<bool>,
fullscreen_notify_handler: RefCell<Option<glib::SignalHandlerId>>,
@ -2451,15 +2448,17 @@ struct MediaViewerController {
impl MediaViewerController {
fn connect_signals(self: &Rc<Self>) {
let fullscreen_click = gtk::GestureClick::builder()
.button(0)
.propagation_phase(gtk::PropagationPhase::Capture)
.build();
let fullscreen_click = gtk::EventControllerLegacy::new();
fullscreen_click.set_propagation_phase(gtk::PropagationPhase::Capture);
let controller = Rc::downgrade(self);
fullscreen_click.connect_pressed(move |_, _, _, _| {
if let Some(controller) = controller.upgrade() {
fullscreen_click.connect_event(move |_, event| {
if event.downcast_ref::<gdk::ButtonEvent>().is_some()
&& event.event_type() == gdk::EventType::ButtonPress
&& let Some(controller) = controller.upgrade()
{
controller.controls_clicked();
}
glib::Propagation::Proceed
});
self.window.add_controller(fullscreen_click.clone());
self.fullscreen_click_controller
@ -2740,29 +2739,24 @@ impl MediaViewerController {
controller.schedule_seek(index);
}
});
let seek_click = gtk::GestureClick::builder()
.button(gdk::BUTTON_PRIMARY)
.propagation_phase(gtk::PropagationPhase::Capture)
.build();
let seek_events = gtk::EventControllerLegacy::new();
seek_events.set_propagation_phase(gtk::PropagationPhase::Capture);
let controller = Rc::downgrade(self);
seek_click.connect_pressed(move |_, _, _, _| {
if let Some(controller) = controller.upgrade() {
controller.begin_seek_interaction();
seek_events.connect_event(move |_, event| {
if event
.downcast_ref::<gdk::ButtonEvent>()
.is_some_and(|event| event.button() == gdk::BUTTON_PRIMARY)
&& let Some(controller) = controller.upgrade()
{
match event.event_type() {
gdk::EventType::ButtonPress => controller.begin_seek_interaction(),
gdk::EventType::ButtonRelease => controller.end_seek_interaction(),
_ => {}
}
}
glib::Propagation::Proceed
});
let controller = Rc::downgrade(self);
seek_click.connect_released(move |_, _, _, _| {
if let Some(controller) = controller.upgrade() {
controller.end_seek_interaction();
}
});
let controller = Rc::downgrade(self);
seek_click.connect_cancel(move |_, _| {
if let Some(controller) = controller.upgrade() {
controller.cancel_seek_interaction();
}
});
self.media_seek.add_controller(seek_click);
self.media_seek.add_controller(seek_events);
}
fn refresh_file_list(&self) {
@ -3064,17 +3058,6 @@ impl MediaViewerController {
}
}
fn cancel_seek_interaction(self: &Rc<Self>) {
self.pending_seek_index.set(None);
if self.seek_interacting.replace(false) {
if self.window.is_fullscreen() {
self.show_fullscreen_ui_temporarily();
} else {
self.show_seek_temporarily();
}
}
}
fn pointer_moved(self: &Rc<Self>, x: f64, y: f64) {
if self.last_pointer_position.get() == Some((x, y)) {
return;